2017-02-22 60 views
0

我需要阻止與特定網址的所有要求如用正則表達式的htaccess URL來禁止

http://www.domain.est/-p-.html?slave_id=15265&osCsid=6j0ltvo8d9i8h30koahqusvua7 

我試着用

RewriteCond %{THE_REQUEST} /(\/-p-\.html)+(\?slave_id\=\d{1,6})?(\&osCsid\=\w{1,26})? [NC] 
RewriteRule^- [F] 

,但不起作用。 我哪裏錯了?

感謝

回答

0

這是一個版本,是比較容易處理,應該是更強大的太多:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/-p-\.html$ [NC] 
RewriteCond %{QUERY_STRING} slave_id=[0-9]{1,6} 
RewriteCond %{QUERY_STRING} osCsid=[0-9a-z]{1,26} 
RewriteRule^- [F] 

注:詢問參數匹配模式並不是絕對精確,但應該有足夠能力幾乎所有情況下...


對於這項工作的HTTP服務器重寫模塊啓用,OB viously。這些規則將在http服務器主機配置或動態配置文件(.htaccess)中起作用。如果您決定使用這種動態配置文件,則還必須注意在主機配置中使用AllowOverride指令來啓用這些文件的解釋,並且該文件必須位於您的http主機配置的DocumentRoot文件夾中。


而且一般提示:你應該總是喜歡將這種規則的HTTP服務器主機的配置裏面,而不是使用動態配置文件(「的.htaccess」)的。這些文件出了名的錯誤,很難調試,他們真的放慢了服務器。它們僅作爲最後一種選擇,用於您無法控制主機配置的情況(閱讀:真正便宜的託管服務提供商),或者您擁有依賴編寫自己的重寫規則的應用程序(這是一個明顯的安全噩夢)。

+0

謝謝!工作很好。 – Saxcbr