要求直接用ip訪問web服務器時返回400狀態,網上查詢了很多文章,均沒有找到有效的解決辦法。
苦思未解決,于是靈機一動,可使用php與apache的地址重寫功能實現,非常簡單:
1. 新建立一個默認主機,即出現在所有<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>
如此,即可實現禁止直接用ip訪問apache。
解釋一下上面的原理:
1. 將對默認主機的所有請求重寫向到/var/www/error/400.php
2. 利用php程序輸出400狀態。
不足之處,apache服務器必須安裝php解析模塊。
|