![Apache Rewrite 重定向除特定页面之外的所有页面](https://linux22.com/image/719819/Apache%20Rewrite%20%E9%87%8D%E5%AE%9A%E5%90%91%E9%99%A4%E7%89%B9%E5%AE%9A%E9%A1%B5%E9%9D%A2%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E9%A1%B5%E9%9D%A2.png)
我正在关闭一个网站,并且想在任何人尝试访问网站上的任何页面(除了几个页面)时显示一条消息。有些页面具有某些 pageid 参数。因此基本上所有内容都应重定向到,但以下页面/retired
除外:
/testcode.jsp
/search/*
/codes/*
/resources/blogs/*
/status/*
/wiki/article?pageid=178973-ghgh-98089
/wiki/article?pageid=354973-aaaa-80879
/wiki/article?pageid=334224-sada-20293
/wiki/article?pageid=546665-qasq-34491
答案1
看起来您想利用 Apache 的 RewriteCond 指令根据模式匹配有条件地重定向请求,如下所示:
RewriteCond "%{REQUEST_URI}" "! /testcode.jsp" [OR]
RewriteCond "%{REQUEST_URI}" "! /search/*" [OR]
{ditto for your other requirements...}
RewriteRule .* /retired [R,L]
它应该明确允许正则表达式模式中的任何内容通过,同时重定向其他所有内容。另请参阅,https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond更多细节。