.htaccess重写w /正则表达式和?lang = en参数

时间:2015-10-29 12:17:29

标签: regex .htaccess mod-rewrite

我需要为我的.htaccess创建一个正则表达式重写规则。

这就是问题所在。我之前的网址结构是:

http://example.com/whatever-the-url-is/?lang=en

现在我把它变成了

http://example.com/en/whatever-the-url-is/

我想创建一个.htaccess网址,301将所有网址从之前的结构重定向到新网址。

.htaccess也是在不同的域之间共享的,所以应该有 开始时RewriteCond %{http_host} !^example.com$ [NC]条件......

有可能吗?你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以使用:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteCond %{QUERY_STRING} (?:^|&)lang=(.+?)(?:&|$) [NC]
RewriteRule ^(.*)$ /%1/$1? [R=301,L]

您可以在RewriteRule之后添加RewriteCond %{HTTP_HOST}

RewriteCond %{REQUEST_URI} !^/(?:en|fr|sp)/ [NC]

您在哪里测试lang代码是否已在网址中。