我有一个iso 639-1语言列表,如下所示:
en, fr, de, es, ja
如果请求URL包含我列表中的一个代码,则会重定向用户
如果数组中不存在语言代码(例如aa,bb),则用户将被重定向到默认索引页。
语言代码始终为2个字符,后跟域名。
重定向示例如下:
http://example.com/en/index.html --> http://example.com/index_en.html
http://example.com/fr/index.html --> http://example.com/index_fr.html
http://example.com/de/index.html --> http://example.com/index_de.html
http://example.com/es/index.html --> http://example.com/index_es.html
http://example.com/ja/index.html --> http://example.com/index_ja.html
http://example.com/aa/index.html --> http://example.com/index.html
http://example.com/bb/index.html --> http://example.com/index.html
http://example.com/zz/index.html --> http://example.com/index.html
我试过这样:
RewriteCond %{REQUEST_URI} ^example.com/(en|fr|de|es|ja)/ [NC]
RewriteRule . /index_$1.html [L]
答案 0 :(得分:2)
这样做:
RewriteEngine On
RewriteRule ^(en|fr|de|es|ja)/index\.html$ /index_$1.html [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[a-z]{2}/index\.html$ /index.html [L,NC]