Drupal Clean Urls随机打破任意路径

时间:2010-06-17 18:47:30

标签: apache drupal clean-urls

我做的一切都很对。我的服务器启用了mod_rewrite,我的虚拟主机路径将AllowOverride设置为All,并且我有.htaccess文件,其重写规则与所有人一样。但我无法使用干净的url路径访问某些页面。因此,对于90%的页面,干净的URL工作正常。但对于那10%,他们没有。

我已经检查过这些页面是否存在 - 他们确实存在。检查它们是否可以使用index.php访问?q = [路径] - 它们是。它们只能通过干净的URL路径进入。

任何人都可以帮我解开这个谜团吗?

2 个答案:

答案 0 :(得分:1)

因为您可以通过q = path / to / menu / item访问您的页面,所以很明显是mod_rewrite是错误的而不是Drupal。

要调试重写的内容,请在请求有问题的页面时打开rewrite log并尾随-f,或者在index.php或页面顶部打印print_r($ _ GET) .tpl.php查看实际请求的内容。

如果您愿意在此处发布可能敏感的.htaccess,请执行此操作,我们可以查看是否存在任何配置错误。

答案 1 :(得分:0)

mod_rewrite有一些长期存在的错误,在途中会破坏网址(您的问题网址是否有任何转义字符?)。我不知道Drupal是否这样做,但在其他PHP应用程序中,我必须添加代码以在达到正确的入口点后重新进行重写。

不幸的是,Drupal无法在PATH_INFO中使用其搜索路径(正如许多其他应用程序所做的那样),否则您可以使用更简单且更可靠的mod_alias