我的网站在两个目录中,默认在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]