Mod rewrite 只重定向父文件夹,不重定向子文件夹。htaccess

Mod rewrite 只重定向父文件夹,不重定向子文件夹。htaccess,mod-rewrite,Mod Rewrite,我正在与以下场景的重定向规则作斗争: 父文件夹/站点(登录页) /关于/领导 子站点(链接到配置文件) /关于/leaders/name1 /关于/领导者/姓名2 我需要停用/about/leaders页面并重定向到/ 但是,个人资料应该仍然在线 它必须与此类似= RedirectMatch 301 /about/leaders/(.*) / RedirectMatch 301 /about/leaders(.*) /$1 但这不起作用。在子文件上,零件/about/leaders被删除,只有

我正在与以下场景的重定向规则作斗争:

父文件夹/站点(登录页)

/关于/领导

子站点(链接到配置文件)

/关于/leaders/name1 /关于/领导者/姓名2

我需要停用/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