语言路径的永久重定向(?语言=en to /en/)



我正在将Drupal设置中的特定于语言的路径从url get参数(?language=en)更改为url前缀/en/。我需要检查请求的url是否包含语言参数(?language=en),然后重定向它。

我有4种语言(da, en, de, pl)应该使用这个结构重定向:

www.example.com/blog?language=da => www.example.com/blog  (This is the default language)
www.example.com/blog?language=en => www.example.com/en/blog
www.example.com/blog?language=de => www.example.com/de/blog
www.example.com/blog??language=pl => www.example.com/pl/blog

可在以下条件下使用:

RewriteCond %{QUERY_STRING} ^language=da$
RewriteRule ^/blog /blog/? [R=301,L]
RewriteCond %{QUERY_STRING} ^language=(en|de|pl)$
RewriteRule ^/blog /%1/blog/? [R=301,L]
RewriteCond %{QUERY_STRING} language=en
RewriteRule ^/blog /en/blog/? [R=301]
RewriteCond %{QUERY_STRING} language=de
RewriteRule ^/blog /de/blog/? [R=301]
RewriteCond %{QUERY_STRING} language=pl
RewriteRule ^/blog /pl/blog/? [R=301]

最新更新