htaccess 语言条件重定向

htaccess language conditional redirect

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

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

domain.com/zh/section/subsection/

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

所以规则应该如下:

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

在我看来是这样的……只在我的脑海里;)

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

提前致谢

您的正则表达式似乎不正确,您可以在 RewriteRule 中执行此操作:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [R=301,L]

在@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]