(Apache)RedirectMatch 正则表达式匹配除我的列表中的目录之外的所有目录

(Apache)RedirectMatch 正则表达式匹配除我的列表中的目录之外的所有目录

我需要对所有传入的请求进行 301 重定向http://server.comhttp://newserver.com除非该请求是针对我们在旧服务器上维护的任意目录列表(例如 server.com/foo 或 server.com/bar)

我很难弄清楚如何最好地设置它和正则表达式。

例如,我需要:

  • http://server.com/page1重定向至http://newserver.com/page1
  • http://server.com/dir1/page2重定向至http://newserver.com/dir1/page2
  • http://server.com/foo正常加载
  • http://server.com/bar/baz.html正常加载

...因为'foo'和'bar'在我的遗留目录列表中。

我想知道是否可以这样做,以某种方式捕获列表中的匹配项,然后将其他任何内容作为通配符重定向到新服务器 - 但我无法使其工作。

有人能帮我提供一些正则表达式并重写它们吗?

谢谢

答案1

你可以尝试

RewriteCond %{REQUEST_URI} !^(/foo/|/bar/).*
RewriteRule ^(.*)$ http://newserver.com/$1 [R]

相关内容