我想爲Apache 2.2中的.htaccess文件中的一組特定的RewriteCond創建特定的403消息(或頁面)。我從來沒有見過這樣做,但似乎它應該是可能的。特定的RewriteCond自定義403頁面
我的.htaccess訪問文件的相關部分看起來是這樣的:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider.* [NC]
RewriteRule .* - [F]
正如你所看到的,我剛剛從接入阻止他們如果用戶代理我的RewriteCond匹配。
多一點細節
這個偉大的工程阻止違規的機器人,但我們碰到一個稍微惱人的問題。我們的網站被許多技術人員訪問。他們自己做了很多編程,並經常使用瀏覽器插件,如「用戶代理切換器」。
我想在此特定實例中提供更有意義的消息。以便他們知道將「用戶代理切換器」更改爲普通瀏覽器。我不希望只提供正常的403頁面,而是希望在此發佈更友好的消息。
我知道我可以將它傳遞給我們的腳本引擎,拔出用戶代理並傳遞自定義頭文件,但似乎這可能會有更優雅的.htaccess解決方案。
這是真的很接近我所需要的。我碰到的一個問題是,你上面提到的條件不包括訪問403頁面。你陷入循環,瀏覽器出錯。對於訪問此答案的其他人,您是否可以修改答案以使用403的errorpages目錄(因爲根級被您的語句阻塞),然後將其作爲第一個條件:'RewriteRule^errorpages - [L,NC ]'如果你這樣做,我測試過,它的工作原理。在修復之後,我會讓你高興。 – Terry
@特里是的,你說得很對。我修復它,所以它不應該導致循環。 –