要求直接用ip訪問(wèn)web服務(wù)器時(shí)返回400狀態(tài),網(wǎng)上查詢(xún)了很多文章,均沒(méi)有找到有效的解決辦法。
苦思未解決,于是靈機(jī)一動(dòng),可使用php與apache的地址重寫(xiě)功能實(shí)現(xiàn),非常簡(jiǎn)單:
1. 新建立一個(gè)默認(rèn)主機(jī),即出現(xiàn)在所有<VirtualHost *:80>最重要的
<VirtualHost *:80> ServerName x.x.x DocumentRoot /var/www/error RewriteEngine On RewriteRule ^.* /400.php </VirtualHost>
2. 編輯文件/var/www/error/400.php, 輸出以下代碼:
<?php header("HTTP/1.1 400 Bad Request"); ?> <h1>Bad Request</h1>
如此,即可實(shí)現(xiàn)禁止直接用ip訪問(wèn)apache。
解釋一下上面的原理:
1. 將對(duì)默認(rèn)主機(jī)的所有請(qǐng)求重寫(xiě)向到/var/www/error/400.php
2. 利用php程序輸出400狀態(tài)。
不足之處,apache服務(wù)器必須安裝php解析模塊。
|