Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 子目录中的页面仅重定向到该子目录_Php_.htaccess_Mod Rewrite - Fatal编程技术网

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

Php 子目录中的页面仅重定向到该子目录,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我的站点有两个目录,默认为root,另一个是root/en。有没有办法告诉in.htaccess,我们单击的每个链接root/enversion都会重定向到root/en 例如,我在默认安装上有一个链接,指向root/news。现在,如果用户位于root/en并单击此链接,则会将其重定向到root/en/news 在原始链接之前,我们总是有/en前缀。或者我必须手动更改所有链接吗?重写将无法工作,或者将非常复杂,因为两个目录中的文件相同。因此,除非您更改所有链接,否则Apache将不知道如何判断

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

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


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

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

如果页面中的链接是相对的(即它们没有该部分),则可以使用
标记为页面上的所有资源设置基本URL。见:

/en/目录中的所有页面都应该有一个设置基本URL的
标记,链接应该以
/
开头

例如:



可以使用完整URL给出相同的示例吗?当然,默认的根页面链接指向:
mypage/news
,/en子文件夹上的相同链接指向:
mypage/en/news
从http://部分开始?这样我就可以知道域名在哪里了?默认的根页面链接指向:
http://mypage/news.php
,/en子文件夹上的相同链接应指向:
http://mypage/en/news.php
在/directory和/en/目录中都有news.php吗?谢谢.htaccess部分!如果我键入
http://mypage
我确实被重定向到
http://mypage/en
虽然有办法隐藏URL中的
/en
部分吗?这个答案也很好,但可以参考。htaccess您能否也包括这个并回答我的上述问题?因为您在父目录和子目录中都有相同的文件,那是行不通的。如果/en/目录不在URL中,Apache怎么知道您希望它在/en/目录中?有趣的是,您实际上回答了我的两个问题,如果您能告诉我如何隐藏URL的一部分,这将是一个双赢:)