2012-06-15 100 views
2

我想在安裝Wordpress的根目錄的子目錄中使用基本的.htaccess驗證。問題與this question相同。 Wordpress用於永久鏈接的根.htaccess文件無法與需要驗證的子目錄中的.htaccess文件播放。.htaccess驗證文件與wordpress

但是,該解決方案無法正常工作,即使這樣做,我也無法使用該解決方案。這是因爲Wordpress的htaccess生成會覆蓋我放入該部分的任何內容。

它所產生的是:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

而我想在列表的RewriteCond堅持是

RewriteCond %{REQUEST_URI} !(^/admin(/.*)?$) 

導航到http://www.example.com/admin應該使用.htaccess文件在目錄認證用戶。例如:

AuthName "Admin Area" 
AuthType Basic 
AuthUserFile "/home/.htpasswd" 
AuthGroupFile "/home/.htgroups" 
require valid-user 

導航到http://www.example.com/anywhereelse應該重定向到index.php

正因爲如此,我甚至不能在這裏顯示出工作的RewriteCond。當進入/ admin目錄時,它總是顯示404頁面,除非我從admin .htaccess文件中刪除require valid-user行。有一點需要注意的是,在404頁面上,響應仍然包含WWW-Authenticate標頭。

所以主要問題是:

  1. 我怎樣才能使這項工作?
  2. 爲什麼它不能正常工作?爲什麼我需要排除/ admin目錄?

回答

2

我找到了解決方案here。添加

ErrorDocument 401 default 

要將根.htaccess文件是WordPress的編輯部分之外,似乎已經解決了這一問題。我不確定這是不是最好的選擇。如果有更好的解決方案,請隨時發佈。

+0

終於正在工作的解決方案,非常感謝張貼解決方案。 – CroiOS