无法弄清楚这一点.HTACCESS重写问题

时间:2013-12-19 04:11:07

标签: apache .htaccess mod-rewrite url-rewriting

我有.HTACCESS文件,有几个重写规则,以提供SEO友好的URL。由于某种原因,两个没有按预期工作。我已经在多个浏览器中进行了验证,认为可能有一个浏览器在.HTACCESS更改之前记住了服务器响应。

以下是我文件的全部内容:

Options +ExecCGI
RewriteEngine on

RewriteRule ^sign-up/?$ signup.php
RewriteRule ^features/?$ features.php
RewriteRule ^contact/?$ contact.php
RewriteRule ^about/?$ about.php
RewriteRule ^how-it-works/?$ how-it-works.php
RewriteRule ^client-pricing/?$ pricing.php

RewriteRule ^login/?$ admin.php

两个单字网址(/about//contact/)会导致404错误。所有其他网址都有效。奇怪的是,另一个单字网址(/login/正在工作。

我已经确认服务器上存在PHP文件。我可以访问www.domain.com/about.php并加载正常。但www.domain.com/about/和www.domain.com/about都返回404。

我很难过......感谢任何见解。

1 个答案:

答案 0 :(得分:1)

尝试启用重写日志记录以查看mod_rewrite正在执行的操作。但是你必须在你的服务器/ vhost配置中执行此操作,而不是在htaccess文件中执行此操作:

RewriteLog /tmp/rewrite.log
RewriteLogLevel 5

您的规则没有任何问题,但这两个规则是唯一一个请求(例如/contact)完全匹配扩展名为php文件的规则。因此,它似乎与多视图相关:

Options -Multiviews