2012-12-24 68 views
3

我最近在服務器上安裝Solr的保護限制從外部用戶Solr管理URL,我想限制只有本地用戶可以.htaccess使用的.htaccess或Tomcat

site.com:8983/solr/admin [ restrict all user] 

及以下訪問是的.htaccess代碼

RewirteRule on 
<FilesMatch "127.0.0.1:8983/solr/admin"> 
    Order Deny, Allow 
    Deny form all 
    Allow 127.0.0.1 
</FilesMatch> 

還是有我們可以保護/上site.com:8983/solr/admin限制Solr管理其他用戶 只有本地IP用戶可以使用它訪問任何方法..

而我試過這個,但它不工作。

回答

1

,因爲你已經被困在正則表達式的主機名和端口您<FilesMatch "127.0.0.1:8983/solr/admin">線永遠不會匹配任何東西。嘗試使用Location容器而不是:

<Location "/solr/admin"> 
    Order Deny, Allow 
    Deny from all 
    Allow 127.0.0.1 
</Location> 

或者更好的是,Directory

<Directory "/path/to/your/document/root/solr/admin"> 
    Order Deny, Allow 
    Deny from all 
    Allow 127.0.0.1 
</Directory> 

你需要填寫的完整路徑Solr的/ admin目錄。

擺脫RewirteRule on行,它什麼都不做,它甚至沒有拼寫正確,並會導致500錯誤。

但是,這些指令都不能在htaccess文件中使用。您需要在vhost config的服務器中使用它們。你的文檔根

Order Deny, Allow 
Deny from all 
Allow 127.0.0.1 

或者,在htaccess文件:如果您必須使用htaccess的文件,然後在你的Solr/admin目錄創建一個htaccess文件,並簡單地把這些指令在它

RewriteEngine On 
RewriteCond %{REMOTE_ADDR} !127.0.0.1 
RewriteRule ^/?solr/admin - [L,F] 
+0

我已經試過這兩種方法,但它不工作...我使用與ports..' site.com:8983爲Solr的 site.com:8080爲tomcat' – Rafee

+0

哪裏把這個htaccess文件? –

+0

@RaheelHasan我的答案是:*然後在你的solr/admin目錄下創建一個htaccess文件,並簡單地把這些指令放在它裏面:*或*在文檔根目錄的htaccess文件中:* –