2011-06-10 60 views
2

我需要关于研究以下问题的建议。CFWheels网站根目录的不同重写模式

车轮网站已配置set(URLRewriting="On"),一切看起来很好,除了根页面。

linkTo一起构建的所有链接看起来像website.tld/controller/action

但在一个/模式“切换”到部分和链接看起来像website.tld/index.cfm/controller/action。有趣的是,如果显式访问默认路由页面(在这种情况下为/ pages/index) - 正确构建的URL。

网站运行在Tomcat中,在Ubuntu下运行Apache2标准Wheels重写规则直接在vhost配置中配置,作为解决已知问题的一种解决方法.htaccess。

从哪里开始?要检查什么变量以及如何调试?

谢谢。

UPD我现在可以看到的是,当直接访问默认操作时,调试输出中没有Route: home。不知道如何使用这些信息,我对轮子有很小的经验。

+1

不知道这是否是答案,所以我会留下评论。如果你不重写'rewrite.cfm',通常轮子会忽略'set(urlRewriting =“On”)'。确保请求通过'rewrite.cfm'而不是'index.cfm'路由。 – 2011-06-11 14:04:24

+0

@Chris我检查过CGI范围,脚本是'index.cfm'。我已修复重写规则,现在一切正常,请将您的评论发布为答案,我会将其标记为已接受。 – Sergii 2011-06-11 15:53:01

回答

2

既然Chris Peters没有创建答案,我会这样做,而不是只是为了标记已解决的问题。无论如何,所有的荣耀都归Chris。

如果您不重写rewrite.cfm,通常车轮会忽略set(urlRewriting =“On”)。确保请求通过rewrite.cfm路由,而不是index.cfm

这意味着你需要检查有问题的页面CGI范围和修复解决方法重写规则(也有少数人在Tomcat + CFWheels,我认为)。

+0

刚才注意到你问我把它作为答案。要检查我的电子邮件通知设置。 : - /很高兴你把它整理出来! – 2011-06-16 12:45:44

2

我有一个非常类似的设置,刚才遇到同样的问题。作为临时解决办法,我发现,通过改变车轮/全球/ public.cfm线294从

loc.returnValue = application.wheels.webPath & ListLast(request.cgi.script_name, "/"); 

loc.returnValue = application.wheels.webPath; 

是linkTo()建立了与URL重写工作的路径。我会ping一些熟悉Wheels的朋友,看看是否有补丁需要解决这个问题。

+0

我刚刚意识到这可能不是完全相同的情况 - 我的问题是,当启用重写而不是/ controller/action时,linkTo()正在编写/index.cfm/controller/action。 – 2011-06-11 04:25:56

+0

罗宾,你的问题看起来完全一样 - 将'/ index.cfm /'错误地插入到生成的URL中。感谢解决方法,虽然我也想听到Wheels开发人员的一些想法,但我知道其中一些人也是SO用户。 – Sergii 2011-06-11 07:33:56