RewriteCond HTTP:Accept-Language所有子文件夹

时间:2012-05-11 00:11:30

标签: .htaccess redirect

目前我已将以下代码添加到.htaccess中。此代码检测浏览器语言并将西班牙语访问者转发到/ es /

当使用西班牙语的用户访问mysite.com时,他们会自动发送到mysite.com/es /

RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^(es.*) [NC]
RewriteCond %{REQUEST_URI} !(^/images/.*)  
RewriteCond %{REQUEST_URI} !(^/es/.*) [NC]
RewriteRule ^(.*)$ /es/$1 [L,R=301]

这样可以正常工作,但不适用于子文件夹。例如,如果同一用户访问mysite.com/page/,则不会发送到mysite.com/es/page /

如何更改代码以便适用于所有子文件夹?

可以使用www重定向

rewriteCond %{HTTP_HOST} !site.com
rewriteRule ^(.*)$ site.com/$1 [R=301,L]

如果您访问site.com/page/test/,您将自动重定向到www.site.com/page/test/但是这样的内容似乎不适用于来自www.site.com/的语言page / test / to www.site.com/es/page/test/

1 个答案:

答案 0 :(得分:0)

如果您的布局是包含内容的子文件夹而不是Web应用程序,那么您需要在每个子文件夹中都有这样的.htaccess文件。放在es目录中的同一文件应该可以解决问题。

至于区分西班牙语 - 西班牙语和秘鲁语 - 西班牙语,您可以尝试使用es-ES和es-PE。

相关问题