Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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 Mod#u Rewrite:将所有请求重定向到子目录,以便后续重定向不';不需要子目录_Php_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php Mod#u Rewrite:将所有请求重定向到子目录,以便后续重定向不';不需要子目录

Php Mod#u Rewrite:将所有请求重定向到子目录,以便后续重定向不';不需要子目录,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正在将根目录重定向到服务器上的子目录: RewriteEngine On RewriteRule ^(.*)$ /_from_git/$1 [L] 在该子目录中(\u from_git/)也将是带有重定向的.htaccess文件。我希望我下面的类似重定向使用开始(^)和结束($)选择器精确匹配,但我不想在每次重写中都包含来自git/的^ 因此,我的问题是-如何修改上面的根重定向,以便可以修改后续重定向 像这样: ^old_page\.html$ /new_page.html [R=301,L

我正在将根目录重定向到服务器上的子目录:

RewriteEngine On
RewriteRule ^(.*)$ /_from_git/$1 [L]
在该子目录中(
\u from_git
/)也将是带有重定向的.htaccess文件。我希望我下面的类似重定向使用开始(
^
)和结束(
$
)选择器精确匹配,但我不想在每次重写中都包含来自git/的
^

因此,我的问题是-如何修改上面的根重定向,以便可以修改后续重定向 像这样:

^old_page\.html$ /new_page.html [R=301,L]
^_from_git/old_page\.html$ /new_page.html [R=301,L]
不是这样的:

^old_page\.html$ /new_page.html [R=301,L]
^_from_git/old_page\.html$ /new_page.html [R=301,L]
谢谢

编辑:在这里您可以看到my.htaccess文件的位置:

Root.htaccess:

子目录的.htaccess:

如果您从\u git/.htaccess
文件创建一个
/\u,那么您就可以拥有这些规则,而无需在每个规则模式前面加上
/\u from\u git/

RewriteEngine On

RewriteRule ^old_page\.html$ /new_page.html [R=301,L,NC]

RewriteBase/\u from\u git/?谢谢,但我刚刚检查并添加了“NC”标志,并没有消除在/u from\u git/中使用“\u from\u git”的必要性。htaccess
NC
仅用于忽略大小写,而不是其他任何内容:),在我回复之前,您删除了之前的注释。如果将此.htaccess置于\u git/
/\u中,则您的规则甚至不能像\u git/old\u page\.html$
中的
重写规则^\u那样工作,因为.htaccess是每个目录指令,URI仅与当前目录匹配。@anubhava,这是我当前必须做的事情(包括^from\u git/),它确实有效。我已经更新了这个问题,添加了我的目录的一张照片。如果我的问题不清楚,那么有两个htaccess文件,一个在根目录中,一个在_from_git/中!