如何在.htaccess重定向后访问父文件夹?

时间:2015-02-19 15:07:27

标签: php css html5 .htaccess redirect

我有一个网站,我需要多语言。在根文件夹中,我有一个.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/这样的相关链接访问文件,因为带有这些文件的文件夹位于根目录中。

所以,最后,我的回答。我应该改变什么才能使其正常工作? 谢谢你的每一个想法。

1 个答案:

答案 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="/" />中添加此内容,以便从该网址解析每个相对网址,而不是当前网页的网址。