Apache-2.4

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

  • April 2, 2018

我正在停用一個網站,並希望在有人嘗試訪問該網站上的任何頁面時顯示一條消息,除了幾個頁面。有些頁面有特定的 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

看起來您想利用 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了解更多詳情。

引用自:https://serverfault.com/questions/905660