我想在其所拥有的参数帐户上重定向以相同单词开头的URL。只需看看我的代码。
RewriteEngine On
RewriteRule ^products/([^/]+) /$1.php
RewriteEngine On
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) /$1.php?ref=$3
RewriteEngine On
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+)/([^/]+) /$1.php?refsub=$4
如果网址与/products/xyz
类似,我希望将其重定向到/xyz.php
如果网址与/products/xyz/abc/11
类似,我希望将其重定向到xyz.php?ref=11
如果网址与/products/xyz/abc/def/111
类似,我希望将其重定向到xyz.php?refsub=111
我已尝试使用代码&它不工作。这有什么缺陷吗?有人可以帮忙吗?
答案 0 :(得分:1)
我认为问题在于所有路线都与第一条路线相匹配,所以它们都会停在那里。您可以对它们进行反向排序,因此它们必须首先匹配最明确的路径:
RewriteEngine On
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+)/([^/]+) /$1.php?refsub=$4
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) /$1.php?ref=$3
RewriteRule ^products/([^/]+) /$1.php
或者您只需添加网址结束标记:
RewriteEngine On
RewriteRule ^products/([^/]+)/?$ /$1.php
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+)/?$ /$1.php?ref=$3
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$1.php?refsub=$4