2011-07-07 16 views
0

サイトのいくつかのエントリをパスワードで保護する必要があります。テンプレートレベルでは簡単ですが、これはエントリーレベルです。私はExpression Engineを実行しています。htaccessを使用してエントリへのアクセスを制限するにはどうすればよいですか?

htaccessファイルを設定しようとしましたが、まだ有効ではありません。

それはこのようなものです:

template_groupは実際template_groupとentry_nameでの名前です
AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/server/.htpasswds/.htpasswd 
AuthGroupFile /dev/null 
<Files template_group/entry_name> 
require valid-user 
</Files> 

は、エントリの実際の名前です。

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

ExpressionEngineのはハンドリングの.htaccessはApache HTTP基本認証 —を含むパスワードで保護するページとテンプレート— Template Access Restrictionための独自の手段を提供していますが、それを使用するためにあなたがしたい、またはできないではない可能性がある状況では、あります。例えば

  • Template Preferences Managerは、アクセス制限を提供していませんので、ExpressionEngineののFreelancer Versionは、Member Management Moduleが含まれていません。

  • ExpressionEngineのHTTP認証を使用する場合、EEは認証にローカルメンバーデータベースを使用するため、[ExpressionEngine]のメンバーアカウントを持つユーザーだけがログインできます。

あなたはDIYのタイプであれば、あなたは、ExpressionEngineのページへのアクセスを制限し、パスワードで保護するためのエントリとテンプレートをごhttpd.confを変更することができます。

注意を保護するURL(複数可)を指定

  1. 編集Apacheのhttpd.conf
  2. 作成.htpasswdまたは.htgroupファイル
  3. この手法は、することによって動作し、我々がしようとしているので、物理的なファイルシステムではなくURLレベルでオブジェクトを照合するには、を使用する必要があります210または<LocationMatch>ディレクティブです。

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

    は、あなたの好みとあなたのホスティング環境にディレクティブの値を変更してください:

    は、サーバーのhttpd.confvhost.confファイルに次のように入れてください。

    すでに、希望のパスワードを暗号化するために.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*へのリクエストは、ExpressionEngineにルーティングされる前にApacheによって処理されます。 (例えば、ワードプレス、MovableTypeのかTextpatternは本当になどまたは任意のCMS、)ExpressionEngineの調和に取り組んで


    ほら— Apacheのパスワードで保護されたディレクトリ。

    1. <Location>ディレクティブのcontextは、それが唯一のserver configvirtual hostの構成ファイルで使用することができることを指定します。つまり、ルールを.htaccessファイルに入れることはできません。それ以外の場合、Apacheは500 Internal Server Errorという記述を「ここで許可されていません」とスローします。あなたはURLレベルでオブジェクトを比較しようとしている場合は、ファイルシステムレベルでオブジェクトを比較しようとしている場合

      • 、あなたは<Directory>および/または<Files>
    2. を使用する必要があり、 <Location>
    3. を使用する必要があります。
1

私はこの件に関して、あなたにとって有益な2つのsimilarquestionsと回答しました。

  • テンプレート設定マネージャ
  • 条件付きグローバル変数
  • サードパーティ製アドオン

それにも関わらず、ExpressionEngineのサイトでパスワードで保護するページへのいくつかの方法がありますあなたの状況を解決する最も簡単な方法は、組み込みのTemplate Preferences ManagerをExpressionEngineコントロールパネルで使用し、認証が必要なemplate

IntererのYuri SalimovskiyによるEntry Accessなどのサードパーティ製のアドオンは、あなたの利益を助長する可能性があります。 エントリアクセスを使用すると、特定のメンバーまたはメンバーグループの特定のチャネルエントリへのフロントエンドアクセスを制限できます。

+0

こんにちはrjb、これも私の最初の考えでした。ただし、テンプレートは自由にアクセスする必要がある他のエントリによって使用されます。私はプライベートテンプレートを作成する必要があるかもしれないように見えますが、あなたからコメントします。 htaccessは実行可能なオプションですか? – fmz

+0

これは本当に最高の、最も簡単なオプションでした。ありがとう。 – fmz

関連する問題