【问题标题】:How to access parent folders after .htaccess redirect?.htaccess 重定向后如何访问父文件夹?
【发布时间】:2015-02-19 23:18:47
【问题描述】:

我有一个需要多语言的网站。在根文件夹中,我有一个如下所示的 .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/ 等相对链接访问文件,因为包含这些文件的文件夹位于根目录中。

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

【问题讨论】:

    标签: php css html .htaccess redirect


    【解决方案1】:

    把上面的规则改成这样:

    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 的 <head> 部分添加:<base href="/" />,以便从该 URL 而非当前页面的 URL 解析每个相对 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 2021-06-29
      相关资源
      最近更新 更多