htaccess重定向和别名根文件夹

问题描述

我在webroot中有一个名为SET IDENTITY_INSERT ON文件夹,名为foo。我正在尝试做一些事情。我希望可以通过.com/foo/*/foo访问文件.com/bar/*内容。但是,我也想将流量从.com/bar/baz/*重定向.com/foo/*,以便用户迁移到新端点。这样做的目的是在打开应用程序时也不要破坏当前用户

这些规则在单独使用时有效,但是同时使用它们时,我只会得到一个重定向循环。我认为应该将更多标志与适当的标志组合在一起,但是我似乎无法弄清楚正确的组合。

.com/bar/*

编辑1:

RewriteRule ^foo/(.*)$ /bar/$1 [R=302,NC,L] RewriteRule ^bar/baz/(.*)$ bar/$1 [QSA] RewriteRule ^bar/(.*)$ foo/$1 [QSA] .com/bar/将在内部正确指向真实目录.com/bar/baz/

但是'.com / bar foo。com / bar / baz and foo`。规则是否可以修正,或者强制尾随斜杠会更好?

will not point correctly to the real directory

解决方法

如果您使用的是Apache 2.4+,则可以使用END

RewriteEngine On

RewriteRule ^foo/(.*)$ /bar/$1 [R=302,NC,L]

RewriteRule ^bar/baz/(.*)$ bar/$1 [NC,END]

RewriteRule ^bar/(.*)$ foo/$1 [NC,END]

如果您使用的是旧版Apache,例如2.2然后使用:

RewriteCond %{THE_REQUEST} \s/+foo/ [NC]
RewriteRule ^foo/(.*)$ /bar/$1 [R=302,L]

RewriteRule ^bar/(.*)$ foo/$1 [NC,L]