htaccess将语言部分添加到现有重定向规则

时间:2014-03-01 11:42:21

标签: php .htaccess redirect

我有一个非常复杂的.htaccess,有30个重定向规则。现在,客户希望将特定于语言的部分添加到网址的开头。

示例:http://example.eu/sale应为http://example.eu/de/sale,其中“de”是5种语言之一的语言代码。

我发现了这个:

RewriteRule ^(en|de|fr|ja|ru)/(.*)$  $2?language=$1 [L,QSA]

是否有一种简单的方法可以将此功能添加到现有规则中? (以下是一些现有规则)

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.eu$ [NC]
RewriteRule (.*) http://example.eu/$1 [R=301,L]

RewriteRule ^sale sale.php [NC]
RewriteRule ^brands/([^/]+) /designer.php?idnr=$1 [NC]
RewriteRule ^product/([^/]+)/([^/]+) /product.php?pid=$1&fsite=$2 [NC]

1 个答案:

答案 0 :(得分:0)

  1. 确保所有R规则都在顶部。
  2. R规则之后你应该有新的规则:

    RewriteRule ^(en|de|fr|ja|ru)/(.*)$  $2?language=$1 [L,QSA]
    
  3. 其他内部重写规则应始终以这些标志结束:

    [L,QSA,NC]