htaccess语言重定向与手动语言选择器

时间:2015-04-19 17:03:29

标签: .htaccess redirect

我使用WPML翻译我的Wordpress网站,我不想使用Jquery语言重定向,而是使用htaccess。

http://example.com 是默认的EN版本

http://example.com/de 是德国人

问题是当您被重定向到/ de /时无法手动导航到EN版本。

这是我的代码

## Language Detection

#The 'Accept-Language' header starts with 'de'
#and the test is case-insensitive ([NC])
RewriteCond %{HTTP:Accept-Language} ^de [NC]

#If not already redirected
RewriteCond %{REQUEST_URI} !^/de/ [NC]    # ADDED

#Redirect user to /de/ address
#sending 301 (Moved Permanently) HTTP status code

RewriteRule ^$ /de/ [L,R=301]

#For every other language use English
RewriteRule ^$ - [L]    # MODIFIED

1 个答案:

答案 0 :(得分:1)

我不确定为什么你不使用WPML提供的内置浏览器语言重定向? https://wpml.org/documentation/getting-started-guide/language-setup/automatic-redirect-based-on-browser-language/

使用WPML你不应该通过.htaccess重定向,这是一个有问题的方法。

我也在WPML的论坛上找到了这个:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

# Redirect. Eg. Browser in German, redirect to /de/
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP:Accept-Language} (de) [NC]
RewriteRule .* http://your-site.com/de/$1 [L]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

# END WordPress

我在这里找到了这个: https://wpml.org/forums/topic/multiple-languages-without-cookies/ 并将代码用于您的德语示例。

关键是,你需要为标准语言创建一个目录,其他明智的切换语言与选择器将通过.htaccess规则将你重定向到主页

希望有帮助吗?