我正在编写代码并构建一个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/foobar或http://example.com/author/fooauthor/访问网址时,我总会收到一条消息,指出该页面无法找到,因为它仍在尝试打开索引文件。
有没有可能解决这个问题?
答案 0 :(得分: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]
发生此问题是因为第一行支持所有网址