我正在尝试在我的HTACCESS文件中设置mod_write来重写我的一个URL。我正在使用$ _GET将标记名称和可选页码(用于分页)传递给名为tags.php的文件。
以下是带有变量的文件名: tags.php?t = textname& s =#
(在上面的网址中,#是页码。)
我正在尝试使用mod_rewrite将网址写为 domain.com/tags/textname/#/ ,但我还想允许 domain.com/tags/textname/ 如果用户登陆第一页(不需要传递分页变量)。
这是我的mod_rewrite代码:
RewriteCond %{REQUEST_URI} !tags\.php [NC]
RewriteRule ^tags/(.*)/$ /tags.php?t=$1 [NC,L]
RewriteRule ^tags/(.*)/(.*)/$ /tags.php?t=$1&s=$2 [QSA,NC,L]
当我访问 domain.com/tags/textname/ 时,代码可以正常运行。失败的地方是我尝试访问 domain.com/tags/textname/1 / 时,因为而不是mod_rewrite传递 tags.php?t = textname& s = 1 ,它传递 tags.php?t = textname / 1& s =
任何人都会看到我在第一次或第二次重写时出错,以防止第二条规则发挥作用?
谢谢!
答案 0 :(得分:0)
想出来。通过首先放置更具描述性的语句来翻转RewriteRules。更新其他有此问题的人。
RewriteCond %{REQUEST_URI} !tags\.php [NC]
RewriteRule ^tags/(.*)/(.*)/$ /tags.php?t=$1&s=$2 [QSA,NC,L]
RewriteRule ^tags/(.*)/$ /tags.php?t=$1 [NC,L]