Mod rewrite 只重定向父文件夹,不重定向子文件夹。htaccess
我正在与以下场景的重定向规则作斗争: 父文件夹/站点(登录页) /关于/领导 子站点(链接到配置文件) /关于/leaders/name1 /关于/领导者/姓名2 我需要停用/about/leaders页面并重定向到/ 但是,个人资料应该仍然在线 它必须与此类似=Mod rewrite 只重定向父文件夹,不重定向子文件夹。htaccess,mod-rewrite,Mod Rewrite,我正在与以下场景的重定向规则作斗争: 父文件夹/站点(登录页) /关于/领导 子站点(链接到配置文件) /关于/leaders/name1 /关于/领导者/姓名2 我需要停用/about/leaders页面并重定向到/ 但是,个人资料应该仍然在线 它必须与此类似= RedirectMatch 301 /about/leaders/(.*) / RedirectMatch 301 /about/leaders(.*) /$1 但这不起作用。在子文件上,零件/about/leaders被删除,只有
RedirectMatch 301 /about/leaders/(.*) /
RedirectMatch 301 /about/leaders(.*) /$1
但这不起作用。在子文件上,零件/about/leaders被删除,只有/nameX保留。我找不到答案。也许其他人也希望取得类似的成就
不管怎样,我很高兴能为您提供帮助使用mod_rewrite可能会更好。通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入文档根目录下的.htaccess
:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^about/leaders(/.*|)$ /$1 [L,R=302,NC]
确认其工作正常后,将R=302
更换为R=301
。在测试mod_重写规则时,避免使用R=301
(永久重定向)。greings-Jens
你认为你需要一行代码吗
RedirectMatch 301 ^/about/leaders/?$ /
我不喜欢使用锚。所以,首先用^
将锚定到URL的前导部分。然后您可以选择将尾部“/”与?
匹配。然后通过$
将其锚定到URL的末尾。应该是这样。不需要第二个指令
由于/about/leaders/name
的扩展URL与模式不匹配,因此它们应该可以正常访问
希望这有帮助 谢谢你,阿努巴瓦!但我选择了下面的答案(实施的工作量较小),确定这是您的选择,只是告诉您其他答案是不会重定向URI,例如/about/leaders
或/about/leaders/abcd