用htaccess RewriteRule替换字符串

时间:2015-04-08 10:03:49

标签: regex .htaccess mod-rewrite

我正在尝试用htaccess RewriteRule替换URL中的字符串。我们的想法是捕获以prodotti开头的每个请求,将其替换为products,其余部分保持不变。例如

  1. prodotti/category/id.html变为products/category/id.html
  2. prodotti/category.html变为products/category.html
  3. prodotti.html变为products.html
  4. 我尝试过以下规则

    RewriteRule ^prodotti products [QSA,NC]
    

    (我省略了L标志,因为在这次替换后我需要进一步制作RewriteRules。

    规则适用于除替换#3(它不匹配)之外的所有内容。如何更改它以匹配单个RewriteRule行的所有替换?

    修改

    以下是替换后我需要执行的其他RewriteRules列表。

    # products/category/id.html
    RewriteRule ^products/([^/]+)/([^/]+)\.html$ mvc.php?rt=products/index&category=$1&id=$2 [L,QSA,NC]
    
    # products/category.html
    RewriteRule ^products/([^/]+)\.html$ mvc.php?rt=products/index&category=$1 [L,QSA,NC]
    

2 个答案:

答案 0 :(得分:0)

RewriteRule ^prodotti(.*)$ products$1 [QSA,NC]

答案 1 :(得分:0)

试试这个

 RewriteRule ^prodotti\.html$ /products.html [QSA,NC,L]