2011-07-07 80 views
0

我需要密碼保護網站上的一些條目。在模板級很容易做到,但是這是在入門級。我正在運行Expression Engine。如何使用htaccess限制對條目的訪問?

我試着設置一個htaccess文件,但它還沒有生效。

它是這樣的:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/server/.htpasswds/.htpasswd 
AuthGroupFile /dev/null 
<Files template_group/entry_name> 
require valid-user 
</Files> 

哪裏template_group是實際template_group和ENTRY_NAME的名稱是項的實際名稱。

任何援助將不勝感激。

謝謝。

回答

1

雖然ExpressionEngine提供了自己的手段Template Access Restriction密碼保護的網頁和模板— 包括處理的.htaccess Apache的基本HTTP認證 —有,你可能不想或不能的情況下,使用它:

如果你是DIY類型,你可以修改你httpd.conf限制和密碼保護訪問ExpressionEngine頁面,輸入和模板

這種技術的工作原理是:

  1. 編輯Apache的httpd.conf
  2. 創建.htpasswd.htgroup文件
  3. 指定網址保護

注:由於我們正在嘗試要匹配URL級別的對象而不是物理文件系統,我們必須使用<Location><LocationMatch>指令。

把你的服務器的httpd.confvhost.conf文件執行以下操作:

<LocationMatch "^/private"> 
    AuthName "Restricted Area" 
    AuthType Basic 
    AuthUserFile /path/to/website/.htpasswd 
    AuthGroupFile /dev/null 
    Require valid-user 
</LocationMatch> 

確保該指令的值更改爲您的喜好和你的主機環境。

如果您還沒有準備好,創建.htpasswd密碼文件加密所需的密碼,或者使用命令行或Online .htaccess Password Generator

htpasswd -c /path/to/website/.htpasswd username

如果htpasswd命令是不是在你的Unix路徑,你必須輸入文件的完整路徑才能運行。我的服務器上,這將是:

/usr/sbin/htpasswd -c /path/to/website/.htpasswd username

然後,htpasswd的會問你的用戶的密碼,並要求你再次輸入以確認:

# htpasswd -c /path/to/website/.htpasswd username 
New password: changeme 
Re-type new password: changeme 
Adding password for user username 

一切就緒並且在工作之前,對/private*的任何請求將在Apache路由到ExpressionEngine之前由Apache處理。


瞧—阿帕奇密碼保護的目錄和諧正與ExpressionEngine(或任何CMS真的,如WordPress,MovableType的或的Textpattern)。

  1. <Location>指令的context指定,它只能在server configvirtual host配置文件中使用。這意味着我們不能將規則放在.htaccess文件中,否則Apache會拋出一個500內部服務器錯誤,其描述爲「此處不允許位置」。

    • 如果您正試圖在URL級別相匹配的對象,則必須使用<Location>
    • 如果您正試圖在文件系統級別相匹配的對象,則必須使用<Directory>和/或<Files>
1

我回答了兩個similarquestions關於這個問題可能對你有益。

然而,有幾種方法用密碼保護的網頁在ExpressionEngine網站:

  • 模板偏好設置管理
  • 有條件全局變量
  • 第三方加載項

到目前爲止,最簡單的解決方案是使用ExpressionEngine控制面板中的內置Template Preferences Manager,並將「private」條目分配給at需要驗證的模板。

IntoEEtive的Yuri Salimovskiy的第三方附加軟件如Entry Access可能對您有所幫助。 條目訪問權限使您可以限制某些成員或成員組的某些通道條目的前端訪問權限。

+0

嗨rjb,這也是我的第一個想法。但是,該模板被其他需要自由訪問的條目使用。從你的評論,雖然看起來我可能需要創建一個私人模板。 htaccess是一個可行的選擇? – fmz

+0

這真的是最好的和最簡單的選擇。謝謝。 – fmz

相關問題