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