我将这两个规则并列
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)?$ category-groups.php?furl=$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)-([^/\.]+)?$ product.php?id=$2&head=$1 [QSA]
这有效
/category-groups.php?furl=my-category-page
redirects to
/my-category-page
这行不通
/product.php?id=100&head=this-product
does not redirect to
/this-product-100
product.php页面实际上被反弹到category-groups.php页面。
我希望这是有道理的。我已经尝试了很多事情,但想不通解决
谢谢
您需要交换规则的顺序,并让正则表达式匹配数字:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)-([0-9]+)?$ product.php?id=$2&head=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)?$ category-groups.php?furl=$1 [QSA,L]
否则^([^/\.]+)?$
将永远匹配所有内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句