htaccess 重写规则冲突



似乎我不必使用相同数量的参数重写同一页面的规则。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule forums/(.*)/(.*).php/(.*)$ forums.php?forums_view_id=$1&forums_view_seo=$2&page=$3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule forums/(.*)/(.*).php/create$ forums.php?forums_view_id=$1&forums_view_seo=$2&create=true

只有第一个有效。但是如果我删除第一个,那么第二个就可以了。我该如何解决这个问题?

您可以使用:

RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule forums/(.*)/(.*).php/create$ forums.php?forums_view_id=$1&forums_view_seo=$2&create=true [L]
RewriteRule forums/(.*)/(.*).php/(.*)$ forums.php?forums_view_id=$1&forums_view_seo=$2&page=$3 [L]

最新更新