将?lang = en string重定向到子文件夹/ en

时间:2014-07-24 20:37:58

标签: apache .htaccess mod-rewrite redirect http-status-code-301

我想像这种模式那样做很多重定向:

domain.com/xxx/?lang=endomain.com/en/xxx/

例如:

domain.com/about/?lang=endomain.com/en/about/

这会将所有链接*/?lang=en重定向到一个目标。

RewriteCond %{QUERY_STRING} ^lang=en
RewriteRule ^ en/about/? [R=301,L]

1 个答案:

答案 0 :(得分:0)

您可以在根.htaccess中使用这些规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+([^/]+)/\?lang=([^\s&]+) [NC]
RewriteRule ^ /%2/%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/([^/]+)/?$ $2/?lan=$1 [L,QSA]

确保代码正常运行后,将302更改为301