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


Pages in subdirectory redirect only to that subdirectory

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

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

我们总是在原始链接之前/en前缀。还是我必须手动更改所有链接?

重写

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

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

/en/目录中的所有网页都应具有设置基本 URL 的 <base> 标记,并且您的链接应以 / 开头。

例:

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

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

RewriteEngine on
RewriteRule ^$ en [L]