2

我需要关于研究以下问题的建议。

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

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

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

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

从哪儿开始?要检查哪些变量以及如何调试?

谢谢。

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

4

2 回答 2

2

我有一个非常相似的设置,刚才遇到了同样的问题。作为一种临时解决方法,我发现通过将wheels/global/public.cfm 的第 294 行从

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

loc.returnValue = application.wheels.webPath;

该 linkTo() 构建了一个与 URL 重写一起使用的路径。我会ping一些更熟悉Wheels的朋友,看看是否需要补丁来解决这个问题。

于 2011-06-11T04:20:24.967 回答
2

由于Chris Peters没有创建答案,我将这样做只是为了标记问题已解决。无论如何,所有荣耀归于克里斯。

如果您不重写 rewrite.cfm,通常 Wheels 会忽略 set(urlRewriting="On")。确保请求通过 rewrite.cfm 而不是 index.cfm

这意味着您需要检查有问题的页面上的CGI范围并修复重写解决方法规则(我认为 Tomcat+CFWheels 的规则很少)。

于 2011-06-13T18:31:54.637 回答