2014-09-26 58 views
1

我有我從以前保存的安裝,我已經標記爲「停止自動工具」,看起來像這樣的列表:究竟在httpd.conf中使用此代碼的位置?

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP:Accept} ^$ [OR] 
RewriteCond %{HTTP:Accept-Language} ^$ [OR] 
RewriteCond %{HTTP:Accept-Encoding} ^$ [OR] 
RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} ^$ 
RewriteCond %{REQUEST_METHOD} ^(POST) 
RewriteRule .* - [R=400] 
</IfModule> 

有人可以刷新我的記憶的地方,我應該使用這個文件,另外,如果可能的話,規則是什麼?

謝謝。

回答

1

這是一個mod_rewrite declaration並且它會無論是在httpd.conf配置文件目錄中的指令,或者你可以把它放在一個.htaccess文件在網站本身,如果你想改變它,而無需使用SSH進入箱子。

<Directory /website/root> 

    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP:Accept} ^$ [OR] 
    RewriteCond %{HTTP:Accept-Language} ^$ [OR] 
    RewriteCond %{HTTP:Accept-Encoding} ^$ [OR] 
    RewriteCond %{HTTP_REFERER} ^$ [OR] 
    RewriteCond %{HTTP_USER_AGENT} ^$ 
    RewriteCond %{REQUEST_METHOD} ^(POST) 
    RewriteRule .* - [R=400] 
    </IfModule> 

</Directory> 

更新 根據您的什麼規則呢,你正在尋找空(如^ $)HTTP headers and connection requests問題。如果您檢查的任何變量都爲空,則系統將通過錯誤代碼400 (Bad Request)來使請求失敗。

該代碼將進入directory directives適用於您的配置文件中的各種網站,無論是vhost include還是常規httpd.conf文件。

+0

謝謝。當我以前使用過這個功能時,我相當確信無論我在哪裏使用它,都可以在服務器範圍內應用,而不是在站點到站點基礎上(.htacess)。爲了讓它在整個服務器範圍內工作,我應該在哪裏添加它?另外,你能否重新記憶它實際上做了什麼?謝謝。 – memrat 2014-09-26 19:50:45

+1

@ user1061571如果將httpd.conf或相關的配置文件放在它的內部,應該有一個'',它會影響該服務器中的所有域。 – Prix 2014-09-27 06:31:52

+0

謝謝@Prix,我會瀏覽一下。 – memrat 2014-09-27 11:57:33