0
目前我已将以下代码添加到.htaccess。此代码检测浏览器的语言和西班牙游客转发到/ ES/RewriteCond HTTP:Accept-Language所有子文件夹
当用西班牙语访问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/
如何更改代码以便适用于所有子文件夹?
喜欢的话是可能的,如果你访问site.com/page/test/你将被自动重定向到www.site.com/page/test/然而,这样的事情确实以www重定向
rewriteCond %{HTTP_HOST} !site.com
rewriteRule ^(.*)$ site.com/$1 [R=301,L]
似乎无法使用语言从www.site.com/page/test/转到www.site.com/es/page/test/
谢谢。有超过1000个子文件夹(每个页面/文章)的博客将是一项不可能完成的任务。 – Lisa
在这种情况下,请尝试将这些规则放在主Apache配置文件中,例如httpd.conf或/ etc/apache2/sites-available/default。 – Ansari
有没有办法做到这一点没有root权限?我希望可以在.htaccess中对RewriteCond%{HTTP:Accept-Language}进行说明,并将所有子文件传递给root和所有子文件夹。喜欢它可能与www重定向 rewriteCond%{HTTP_HOST}!site.com rewriteRule ^(。*)$ http://www.site.com/$1 [R = 301,L]如果您访问site.com/页面/测试/您将自动重定向到www.site.com/page/test/然而,类似这样的东西似乎不适用于从www.site.com/page/test/到www.site.com的语言/ es/page/test/ – Lisa