.htaccess 仅URL中第一个文件夹的重写规则

.htaccess 仅URL中第一个文件夹的重写规则,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,我必须将一些文件夹从我的域重定向到子域。以下是我的.htaccess规则: RedirectMatch 301 /folder1 http://sub.domain.com/folder1$1 RedirectMatch 301 /folder2 http://sub.domain.com/folder2$1 所有工作正常,这将重定向所有内容 www.domain.com/folder1/... => to => sub.domain.com/folder1/... 但没有挑

我必须将一些文件夹从我的域重定向到子域。以下是我的.htaccess规则:

RedirectMatch 301 /folder1  http://sub.domain.com/folder1$1
RedirectMatch 301 /folder2  http://sub.domain.com/folder2$1
所有工作正常,这将重定向所有内容

www.domain.com/folder1/... => to => sub.domain.com/folder1/...
但没有挑战的世界是什么?我意识到了这个问题:这个规则也重定向

www.domain.com/sub1/sub2/folder1/... => to => sub.domain.com/folder1/... 
对我来说,这并不好。有什么办法可以避免这种情况


提前准备好

您需要使用^$来分隔正则表达式模式,以便只匹配/folder1

RedirectMatch 301 ^/folder1$ http://sub.domain.com/folder1$1

您需要使用^$来分隔正则表达式模式,以便只匹配/folder1

RedirectMatch 301 ^/folder1$ http://sub.domain.com/folder1$1

嗨,starkeen,我试过这个,但没用,和以前一样。这也是重定向www.domain.com/sub1/sub2/folder1/…=>to=>sub.domain.com/folder1/。。。据我所知,^标志着第一次出现,所以我更新了问题文本。因为我只想重定向folder1,如果它是域之后的第一个文件夹。在像www.domain.com/sub1/sub2/folder1/这样的url中,它仍然是第一次出现,但在这种情况下,它不应该被重定向。可能是因为您的浏览器缓存。清除缓存并重新测试。此f******缓存;-)它可以工作,但我收到一个错误,因为重定向url如下所示:http//sub.domain/folder1/(缺少“:”)我在folder1之后添加了$。你能更新你的答案吗?嗨,starkeen,我试过这个,但没用,和以前一样。这也是重定向www.domain.com/sub1/sub2/folder1/…=>to=>sub.domain.com/folder1/。。。据我所知,^标志着第一次出现,所以我更新了问题文本。因为我只想重定向folder1,如果它是域之后的第一个文件夹。在像www.domain.com/sub1/sub2/folder1/这样的url中,它仍然是第一次出现,但在这种情况下,它不应该被重定向。可能是因为您的浏览器缓存。清除缓存并重新测试。此f******缓存;-)它可以工作,但我收到一个错误,因为重定向url如下所示:http//sub.domain/folder1/(缺少“:”)我在folder1之后添加了$。你能更新你的答案吗?