htaccess语言条件重定向

时间:2016-11-29 19:33:25

标签: php .htaccess redirect mod-rewrite regex-negation

我需要在htaccess中进行重定向,具体取决于网址中是否存在语言代码。

网址结构应该以域名开头,然后是语言代码,然后是特定页面(与任何常规网站一样)

domain.com/ zh_ / section / subsection /

如您所见, / en / 是语言代码,但可能有不同的语言代码[/ en / es / it /]

所以规则应该如下:

  • 必须存在语言代码且长度必须为2个字符

如果此规则不匹配,浏览器应重定向到默认语言" / en /"

在我的脑海里,它就是这样......只在我的脑海里;)

RewriteCond %{REQUEST_URI} !^/([az]){2}/(.*)$
RewriteRule ^(.*)$ /en/$1 [L]

提前致谢

2 个答案:

答案 0 :(得分:0)

你的正则表达式似乎不对,你可以在std::istringstream本身中执行此操作:

operator >>

答案 1 :(得分:0)

在@anubhava的帮助下,最终这段代码就像一个魅力。 谢谢!

RewriteCond %{REQUEST_URI} !^(.+)\.(js|css|png|jpe?g|gif|eot|woff2?|ttf|otf|svg|json|txt|xml|html?|htc|ico|m4a|m4v|manifest|mp4|mp3|oex|oga|ogg|ogv|otf|pdf|swf|fla|safariextz|svgz?|vcf|webapp|webm|webp|xpi)$ [NC]
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [R=301,L]