2016-08-17 127 views
2

我写一个编号,并建立其具有如下内容的htaccess文件:的.htaccess重写规则冲突

RewriteEngine on 

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] # Handle page requests 
RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L] # Handle category requests 
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] # Handle author requests 

的第一条规则工作正常,但后者似乎有与第一条规则冲突。每当我访问http://example.com/category/foobarhttp://example.com/author/fooauthor/的URL时,我总是会收到一条消息,指出找不到页面,因为它仍在尝试打开索引文件。

有没有可能解决这个问题?

回答

2

您可以在最后一行设置一般规则:

RewriteEngine on 

RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L]  
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] 

此问题的发生,因为一线支持的所有URL

+0

啊,这是有道理的。像魅力一样工作,谢谢兄弟。 – crozland23

+1

不客气,您的投票可以帮助他人看到正确的答案 –

+0

不能upvote因为我的声誉。在系统允许的情况下,将在10分钟内接受您的答案。 – crozland23