2011-08-01 63 views
2

我有一个网站使用mod_rewrite的漂亮的URL。我有两个主要的网址:Apache忽略htaccess

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错误,我认为这是因为它正在寻找文件夹“生成”,这不存在,它无法在文档根目录中找到htaccess。

谢谢

+1

你有在.htaccess任何其他'Options'指令?在任何情况下 - 将'Options + FollowSymLinks'改为'Options + FollowSymLinks -MultiViews'并确保在该行之后没有'Options + MultiViews'或类似的。现在再试一次有问题的网址。如果仍然没有 - 请参阅是否可以启用重写调试(将“RewriteLogLevel 9”放入服务器配置/虚拟主机上下文中)并检查重写日志以获取确切的详细信息。 – LazyOne

+0

谢谢,错误发生在MultiViews选项中,禁用错误消失 –

回答

0

你有没有尝试

RewriteRule ^generate\/([a-z0-9_-]+)$ generate.php?id=$1 [L,NC]