子目录中的页面仅重定向到该子目录

时间:2014-11-27 09:16:16

标签: php .htaccess mod-rewrite

我的网站位于两个目录中,默认位于root,另一个位于root/en。有没有办法告诉.htaccess我们点击root/en版本的每个链接都会重定向到root/en

例如,我的默认安装链接指向root/news。现在,如果用户位于root/en并点击此链接,则会将其重定向到root/en/news

我们在原始链接之前始终有/en前缀。或者我是否必须手动更改所有链接?

1 个答案:

答案 0 :(得分:0)

重写将无法正常工作,或者由于两个目录中都有相同的文件,因此重写会很复杂。因此,除非您更改所有链接,否则Apache不会知道如何判断您单击了哪个链接。更改网页中所有链接的基本网址的快捷方法是使用<base>标记。请注意,它将更改所有相关资源(如css,javascript和图像)的基本URL。

如果您网页中的链接是相对的(即他们没有http://www.example.com部分),那么您可以使用<base>标记为网页上的所有资源设置基本网址。请参阅:http://www.w3schools.com/tags/tag_base.asp

/ en /目录中的所有网页都应该有<base>标记来设置基本网址,而您的链接应该以{{1​​}}开头。

示例:

/

这是一个apache重定向到子目录的示例,但我不认为它在yoru情况下有效。浏览器将无法以这种方式访问​​/目录中的任何内容:

<html>
  <head>
    <base href="http://example.com/en/">
  </head>
  <body>
    <a href="/news.php">news</a>
  </body>
</html>