mod_rewrite将国家/地区代码转换为URI

时间:2012-11-08 16:32:43

标签: apache mod-rewrite url-rewriting

我需要重定向以下包含国家/地区代码的URL:

http://xx.domain.com/test.html

成:

http://xx.domain.com/xx_en/test.html

我想出了以下内容,当然这会有一个无限循环:

RewriteCond %{REQUEST_URI} !/xx_en/ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com [NC]
RewriteRule (.*) /%1_en/$1 [R=301,L]

所以我添加了第一行,我认为,这意味着如果你在request_uri中没有看到/ xx_en /,那么就会执行以下操作。

知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

使用类似以下规则的内容:

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/%1_en/.*$
RewriteRule ^(.*)$ /%1_en/$1 [R=301,L]

您可以理解为:对于domain.com下所有三级域名的所有请求,这些域名不以/< 3rd level> _en /重定向到它...