Apache-2.2
重寫規則不起作用
我想轉換這個網址
http://ts.thebenamorgroup.com/g2g/category.php?cate=mens
到:
http://ts.thebenamorgroup.com/g2g/category/cate/mens/
我有這個規則,但它不起作用:
Options +FollowSymLinks RewriteEngine on RewriteRule category/cate/(.*)/ category.php?cate=$1 RewriteRule category/cate/(.*) category.php?cate=$1
你有向後的邏輯:
RewriteRule category/cate/(.*)/ category.php?cate=$1 RewriteRule category/cate/(.*) category.php?cate=$1
這將嘗試重寫
category/cate/mens/
為category.php?cate=mens
你不能只是反轉它,因為 RewriteRule 不能對查詢字元串進行操作,所以你還需要使用 RewriteCond :
RewriteCond %{QUERY_STRING} cate=(.*) RewriteRule /category.php category/cate/%1
請注意使用
%1
to 引用 in 的反向引用RewriteCond
(而不是$1
用於 backref inRewriteRule
)
RewriteCond %{QUERY_STRING} cate=(.*) RewriteRule g2g/category.php g2g/category/cate/%1? [L]
這將完全符合您的要求。注意“?” in RewriteRule 停止再次附加查詢字元串 (?cate=mens)。