【发布时间】:2011-08-03 20:40:50
【问题描述】:
我有一个网站使用 mod_rewrite 来获取漂亮的 url。我有两个主要网址:
example.com/id
example.com/generate/id
还有这个 htaccess 文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^generate/([a-z0-9_-]+)$ generate.php?id=$1 [L,NC]
RewriteRule ^([a-z0-9_-]+)$ contact.php?id=$1 [L,NC]
第一个 url 工作正常,但第二个没有。 Apache显示404错误,我认为是因为它正在寻找“generate”文件夹,该文件夹不存在,并且在文档根目录中找不到htaccess。
谢谢
【问题讨论】:
-
.htaccess 中还有其他
Options指令吗?在任何情况下 - 将Options +FollowSymLinks更改为Options +FollowSymLinks -MultiViews并确保在该行之后没有Options +MultiViews或类似内容。现在再次尝试有问题的 URL。如果仍然没有 - 看看你是否可以启用重写调试(将RewriteLogLevel 9放入服务器配置/虚拟主机上下文中)并检查重写日志以获取确切的详细信息。 -
谢谢,错误出现在 MultiViews 选项中,禁用它错误消失
标签: apache mod-rewrite