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


How to access parent folders after .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/因为包含这些文件的文件夹位于根目录中。

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

将上述规则更改为:

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以外的所有请求重写到子文件夹中。

也可以尝试将其添加到页面HTML:<base href="/" /><head>部分,以便从该URL而不是当前页面的URL解析每个相对URL。