对于多语言网站,我使用以下代码自动将人们重定向到正确的页面。这很好用,但不包括样式表和其他文件。
如果访客来自法国,.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 / 。
答案 0 :(得分:0)
您可以使用
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
以便不会重写对存在的文件和目录的请求