2016-11-29 69 views
1

我需要在我的htaccess中进行重定向,具体取决于url中语言代码的存在与否。htaccess语言条件重定向

URL结构应与域其次是语言代码开始,然后,具体的页面(如任何正规网站)

domain.com/ EN /节/小节/

正如你可以看到,/EN/是语言代码,但也可能有不同的语言代码[/ EN/ES /它/]

所以规则应该如下:

  • 语言代码必须存在,并且必须是长2个字符

如果这条规则不匹配,浏览器应该被重定向到默认郎“/ EN /”

在我看来它是这样的事情......只是在我的脑海里;)

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

在此先感谢

回答

0

你的正则表达式看起来不正确,你可以在做到这一点本身:

​​
+0

Thanks @anubhava。我知道我的正则表达式是错误的hehehe,只是想出来。你的方法似乎是一个好的开始,但是,由于有更多可能的语言代码,它是好的,它是动态的,所以我不需要把它们全部放在一起。这就是为什么我想像[az] {2}这样的事情,任何想法?再次感谢! – Ivano

+0

好吧现在尝试我的更新规则。 – anubhava

+0

好吧,最后你的方法工作,但不得不添加2件事: - 301重定向标志 - 一种条件,以避免不应该被重定向的所有文件 @anubhava,它的工作很好。我会将您的答案标记为正确答案,并添加最终代码。如果你愿意,你可以用最终的代码更新你的答案,所以对其他人来说它仍然是正确的。 谢谢! – Ivano

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]