每this article你可以做這樣的:
比方說,你想阻止IP地址123.255。 123.255訪問www.mydomain.com/index.php?option=com_my_special_component頁面。這裏是你如何寫規則:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.255\.123\.255
RewriteCond %{QUERY_STRING} option=com_my_special_component [NC]
RewriteRule ^(.*)$ index.php [F,L]
第一行只是打開URL重寫。第二行匹配IP地址(在每個點之前使用反斜槓),第三行匹配查詢字符串(即URL中的?之後的任何內容) - 在這種情況下,如果option = com_my_special_component位於URL中的任何位置之後 ? (例如,index.php?id = 1 & option = com_my_special_component & action = dostuff仍然會與此規則匹配)。該行末尾的[NC]指示它應用規則,而不管URL中的任何字符是大寫還是小寫。最後一行將用戶重定向到帶有'禁止'標頭的index.php - 這樣他們將在瀏覽器中收到一條錯誤消息,並告訴mod_rewrite停止解釋任何進一步的重寫規則。
如果你想禁止多個IP地址,您可以添加新線他們,但你需要一個[OR]標誌添加到每行末尾除了最後一個 - 例如:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.255\.123\.255 [OR]
RewriteCond %{REMOTE_ADDR} ^124\.255\.124\.255 [OR]
RewriteCond %{REMOTE_ADDR} ^125\.255\.125\.255
RewriteCond %{QUERY_STRING} option=com_my_special_component [NC]
RewriteRule ^(.*)$ index.php [F,L]
由於您可以阻止訪問管理頁面,因此您可能只想允許您的IP。在這種情況下,你只需在IP地址前面加一個感嘆號來表示它是否是除此之外的任何IP,然後重寫。
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.255\.123\.255
RewriteCond %{REMOTE_ADDR} !^124\.255\.124\.255
RewriteCond %{REMOTE_ADDR} !^125\.255\.125\.255
RewriteCond %{QUERY_STRING} option=com_my_special_component [NC]
RewriteRule ^(.*)$ index.php [F,L]
希望有所幫助。