2012-01-29 20 views
4

我一直在閱讀什麼似乎是一個很好的教程rest based authenticationHtaccess - Http驗證 - 爲什麼這個塊給我造成500錯誤?

我想使用此作爲訪問網站cms(持有可訪問的web根目錄)的補充。

如同在什麼時候使用cms索引,我希望使用這種基本的認證形式。一旦用戶導航到任何部分,我的默認php身份驗證系統就會啓動,因此某些用戶只能訪問cms中的某些功能。

我不明白什麼,雖然,這就是爲什麼下面的代碼塊,當放在我的.htaccess文件,使整個網站產生500錯誤...

<Files .login> 
AuthType Digest 
AuthNAme "Authentication Required" 
AuthDigestFile /usr/home/myDomain/includes/htpasswd/admin/.htdigest 
Require valid-user 
</Files> 

我已經試過一個類似的試驗使用基本訪問功能,但決定這種方法會更安全一些,作爲補充。而我使用apache的htpasswd.exe程序來創建一個.htpasswd文件,我可以使用它來驗證基本訪問。這工作正常,但我無法弄清楚如何通過.htaccess文件將這種類型的身份驗證應用於cms索引。

我已經開始創建一個文件,使用apache的htdigest.exe程序創建一個名爲.htdigest的文件。

其內容如下:

testUser:Authentication Required:cd7h62051449100elk3c463eae6251f5

現在,這一切成立,我已按照提到條每頁的指示,努力實現,即一旦用戶點擊了一個實例一個帶有href屬性「.login」的鏈接,它們直接指向我的cms(auth required)。這是交代由作者:

所以沒有.login文件,它只是將觸發 身份驗證,因爲訪問該網址要求用戶是 認證的URL。

現在,出於某種原因,當我嘗試加載在我的網站的任何頁面,此塊在.htaccess,我得到一個500錯誤,當我實際上應該得到驗證框?

但這是我很困惑,因爲我相信這塊將只能與「在.login的」 href的鏈接用戶點擊的情況下的效果...

我還沒有添加當認證有效時,進一步的塊將用戶引導到索引頁面,只有這個塊和作者提到的兩個附加塊。

有人能夠解釋是什麼導致了這種反應?

+2

服務器error_log說什麼? – jcmeloni 2012-01-29 16:19:59

+0

這是一個Windows或Linux服務器?你提到「htpasswd.exe」這聽起來像Windows,但AuthDigestFile路徑看起來像一個Linux路徑。另外,如果它是一個Linux服務器,文件是否在正確的位置? – 2012-01-29 16:22:17

+0

命令'AuthDigestFile'無效,可能是拼寫錯誤或由未包含在服務器配置中的模塊定義,引用者:http://www.myDomain.com /' – 2012-01-29 16:24:24

回答

6

根據error_log的說明,如果您使用的是Apache 2.2.x,請嘗試將AuthDigestFile更改爲AuthUserFile。根據您的操作系統,您可能還會遇到文件路徑差異;請遵循任何新的error_log消息。

+1

我剛剛發佈,並且'AuthDigestProvider文件'可能會有用。 – 2012-01-29 16:31:20

+0

謝謝你,但這不會工作,因爲我沒有使用基本的身份驗證類型,我使用所述的摘要類型。 – 2012-01-29 16:31:25

+0

@ dev-null-dweller請參閱帖子作者的引文「如果此指令被忽略或其值爲空,則客戶端應該 假定保護空間包含 響應服務器上的所有URI。」 – 2012-01-29 16:32:51

3
  1. 是字面意思myDomain在路徑中嗎?
  2. 500錯誤的原因被寫入error_log文件。它是宇宙中唯一可以找到原因和解釋的地方。
+0

您好,感謝您的輸入,請參閱上面的意見,瞭解錯誤日誌中突出顯示的內容。不,它不是真正的「myDomain」它是我的實際域的名稱。沒有.com – 2012-01-29 16:28:24

相關問題