我有一个网站,我需要多语言。在根文件夹中,我有一个.htaccess,如下所示:
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (cs) [NC]
RewriteRule .* cs/index.php [L]
RewriteCond %{HTTP:Accept-Language} (de) [NC]
RewriteRule .* de/index.php [L]
我还在默认语言(英语)的根文件夹中有一个index.php。如果客户来到网站,我需要将他重定向到适当的语言文件。您可以在htaccess文件中看到这些文件位于子文件夹中。 (/ cs,/ de)。我在子文件夹中拥有这些文件的原因是,客户有意见自己更改语言。网站上有标志,可以手动将它们重定向到适当的文件夹。 到目前为止,一切正常,但存在一个巨大的问题。自动重定向后,网站无法使用css和js文件访问根子文件夹。 它的行为类似于cs / index.php文件位于根目录中。我通过像../css/这样的相关链接访问文件,因为带有这些文件的文件夹位于根目录中。
所以,最后,我的回答。我应该改变什么才能使其正常工作? 谢谢你的每一个想法。
答案 0 :(得分:0)
将上述规则更改为:
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (cs|de) [NC]
RewriteRule !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ %1/index.php [L,NC]
这会将除.css, .js & various images types
之外的所有请求重写为子文件夹。
还可以尝试在页面的<head>
部分HTML <base href="/" />
中添加此内容,以便从该网址解析每个相对网址,而不是当前网页的网址。