Apache Rewrite 重定向除特定页面之外的所有页面

Apache Rewrite 重定向除特定页面之外的所有页面

我正在关闭一个网站,并且想在任何人尝试访问网站上的任何页面(除了几个页面)时显示一条消息。有些页面具有某些 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更多细节。

相关内容