我正在设置一个 htaccess 文件以使用一些对搜索引擎友好的 URL,而不是直接指向 php 文件。我以前用过很多次这种方法,但这是我第一次在 rackspace 服务器 LAMP 堆栈上这样做。似乎有些规则虽然非常简单,但却不起作用。只有“404error”规则似乎有效,而其他规则都没有触发。我的 apache 错误日志显示此错误:
协商:发现与请求匹配的文件:/var/www/features(无法协商)。
.htaccess 内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^features$ features.php [L]
RewriteRule ^features/$ features.php [L]
RewriteRule ^blog$ blog.php [L]
RewriteRule ^blog/$ blog.php [L]
RewriteRule ^contact$ contact.php [L]
RewriteRule ^contact/$ contact.php [L]
RewriteRule ^login$ login.php [L]
RewriteRule ^login/$ login.php [L]
RewriteRule ^signup$ signup.php [L]
RewriteRule ^signup/$ signup.php [L]
RewriteRule ^404error$ error.php [L]
RewriteRule ^404error/$ error.php [L]
ErrorDocument 404 http://www.mydomain.com/404error
ErrorDocument 403 http://www.mydomain.com/404error
</IfModule>
答案1
这是您的重写日志中的答案:
12.34.56.78 - - [14/Jun/2013:19:46:18 --0700] [www.mydomain.com/sid#7fafc1a3f9b0][rid#7fafb64320a0/initial] (2) 使用请求的 uri /features 初始化重写引擎
请求的 uri 是/features
。请注意开头的斜杠。您正在匹配^features
,没有开头的斜杠。