2014-02-07 57 views
0

我們有一個wordpress網站,當用戶未登錄時,我們希望阻止某些文件,如.pdf和.txt,然後在用戶登錄時允許這些文件。.htaccess登錄時允許文件類型

我們知道如何允許某些文件類型以及如果用戶未登錄時如何檢查/重定向,但我們不知道如何將兩者結合起來,是否有人知道如何做到這一點或者是否有可能?我已經列出了我們目前在我們的.htaccess文件中使用的代碼。

任何意見將不勝感激,讓我知道如果你需要任何額外的信息。

謝謝你的時間和幫助。

問候

荊荊濤

允許某些文件類型

order deny,allow 
deny from all 
<files ~ ".(xml|css|jpe?g|png|gif|js)$"> 
allow from all 
</files> 

重定向如果不是在

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} ^.*uploads/.* 
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC] 
RewriteRule . /wp-login.php?redirect_to=%{REQUEST_URI} [R,L] 
RewriteRule ^index\.php$ – [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

回答

2

記錄要禁止然而在特定的ñ文件類型,如果沒有登錄?

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} ^.*uploads/.* 
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC] 
RewriteRule \.(pdf|txt)$ - [F] 
</IfModule> 

我假定這兩個RewriteConds是正確的,並且兩者都需要。您可能需要調整它們以微調RewriteRule將應用的確切條件。現在,它在尋找術語上傳/在URI 確實找到wordpress_logged_in在cookie中。我認爲你並沒有試圖運行「如果未登錄的重定向」代碼。

+0

嗨菲爾,謝謝你的回覆。該代碼已在允許登錄後訪問文件給出的作品與其他 兩個小筆記,如果你不介意問, 1)我們想補充重定向 2)我們如何檢查用戶登錄,如果我們還處理登錄與PHP會話在插件中,我試着用「PHPSESSID」替換「wordpress_logged_in」,但沒有運氣。 謝謝你的幫助。 – JingJingTao

+0

我不是一個WordPress專家,所以我可以給你的幫助是有限的。對於1)是否有一點在排除訪問某些文件和重定向訪問者,如果他們沒有登錄?在這種情況下,我認爲文件排除會是多餘的。 2)「wordpress_logged_in」在_cookie_中,通常PHP會話ID不是,但我可能在那裏是錯誤的。這將需要一位WP專家來幫助你。 –

0

讓你的規則是這樣的:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_COOKIE} !wordpress_logged_in [NC] 
RewriteRule (^|/)uploads/.+?\.(xml|css|jpe?g|png|gif|js)$ wp-login.php?redirect_to=/ [R,L] 

RewriteRule ^index\.php$ – [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
+0

嗨Anubhava,謝謝你的回覆,不幸的是你提供的代碼不起作用,不知道我們做錯了什麼。 – JingJingTao

+0

哪個網址不起作用? – anubhava