2016-11-16 56 views
1

我正在使用ReWrite規則來控制訪問該網站,當使用一個IP地址我的結構工作正常..但有一個特定的提供者使用許多不同的IP範圍這些都與他們的域名「abc123.com」相反,我將如何在我的重寫中表達他們的所有範圍,例如:* .abc123.com?以下是我使用什麼IP的:htaccess ReWriteCond反向查找* .abc123.com格式

RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.012 
RewriteRule^- [R=403,L] 

,我想這樣做:

RewriteCond %{REMOTE_ADDR} ^*.abc123.com 
RewriteRule^- [R=403,L] 

回答

0

我將如何表達其所有範圍,例如:* .abc123.com在我的 重寫中?

您可以使用幾種方法並嘗試執行此操作。這將使用引薦來源,如果它不符合您的主機,它將拒絕訪問。

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'" 
RewriteRule^- [F] 

或者您可以使用遠程主機。

RewriteCond %{REMOTE_HOST} \.abc123\.com$ [NC] 
RewriteRule^- [F] 
0

如果你的DNS查找在你的Apache /虛擬主機配置使用此開啓指令:

HostnameLookups On 

那麼你可以使用REMOTE_HOST變量遠程主機名:

RewriteCond %{REMOTE_HOST} \.abc123\.com$ [NC] 
RewriteRule^- [F] 
+1

我想我需要輸入更快。 –

+0

AHA類似的答案:)但你有一個額外的'HTTP_REFERER'選項以及 – anubhava

+1

大聲笑,這兩種優秀的方法。謝謝anubhava&panama Jack ...我測試了遠程主機選項,它的運行非常好。希望Stacks允許我選擇兩個答案,因爲你們兩個都是正確的,但由於它只有一個,巴拿馬需要它比anubhava多一點,所以我會接受這個答案..但是非常感謝你們兩個! –