.htaccess语言重定向与排除

时间:2012-03-19 10:36:32

标签: .htaccess redirect

对于多语言网站,我使用以下代码自动将人们重定向到正确的页面。这很好用,但不包括样式表和其他文件。

如果访客来自法国,.htaccess中的以下代码将www.site.com转至www.site.com/fr。但它也会重定向样式表和其他文件。

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

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

RewriteCond %{REQUEST_URI} !(^/.*) [NC]
RewriteRule ^(.*)$ /$1 [L,R=301]

www.site.com/css/style.css变成了www.site.com/fr/css/style.css,它不存在 www.site.com/js/file.js变成不存在的www.site.com/fr/js/file.js

有没有办法创建自动重定向,但排除整个子目录?例如,排除/ css / 和/ js /

1 个答案:

答案 0 :(得分:0)

您可以使用

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

以便不会重写对存在的文件和目录的请求