我的网站位于两个目录中,默认位于root
,另一个位于root/en
。有没有办法告诉.htaccess我们点击root/en
版本的每个链接都会重定向到root/en
?
例如,我的默认安装链接指向root/news
。现在,如果用户位于root/en
并点击此链接,则会将其重定向到root/en/news
。
我们在原始链接之前始终有/en
前缀。或者我是否必须手动更改所有链接?
答案 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>