2012-09-13 48 views
2

問題:我想爲我的服務器上的某個目錄(默認情況下禁用)啓用目錄索引,僅限於某個用戶代理。.htaccess:爲某個用戶代理啓用目錄索引

我知道有<如果>指令可以在.htaccess文件中使用,但我還沒有設法得到結果。

我要找的是沿着這些路線的東西:

<If user-agent = 'a certain user agent'> 
    Options +Indexes 
</if> 

我知道有可根據各種條件(如某個用戶代理)來設置和我一直在環境變量能夠根據我的需要設置它們,我不能做一個簡單的「如果變量設置,然後設置選項+索引」語句

建議?指針?這甚至有可能嗎?我無法訪問Apache全局配置文件。

+0

我不知道IF語句,但你可以做一招:啓用目錄endexing給大家,並與重寫n檢查如果有人請求一個目錄,並且他不是「某個用戶代理」,那麼會生成一個禁止的錯誤 – Oussama

+0

不,這是不行的,因爲該目錄包含必須可供所有人訪問的文件,但對於某些特殊用戶,我必須啓用索引幫助他們瀏覽目錄。 –

+0

我剛纔說禁止訪問它自己的目錄,而不是目錄 – Oussama

回答

1

作爲一個解決方案,可以允許目錄索引給大家,然後禁止進入目錄對於那些誰不符合使用重寫規則一定的條件。

舉個例子(禁止目錄索引,以使用Googlebot,大家):

Options +Indexes 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{HTTP_USER_AGENT} !googlebot [NC] 
RewriteRule . - [F]