2011-02-02 5 views
0

私は開発サイトのセットアップでDrupalを実行しています。私は基本的なHTTPAuth + htpasswdを使ってサイトをロックして、baddiesを止めました。Drupal + .htpasswd:devサイトをロックして単一パスへのアクセスを許可する方法

問題は、単一のノード、Webフォームが、この開発サイトでライブサイトからアクセス可能である必要があることです。

私の質問は、Drupalの複雑なブートストラッププロセスのために、どうすればへのアクセスを許可するのですか?この単一のファイル/ URLですか?

htpasswdのための私のバーチャルホストの設定:

<Directory /> 
    AuthUserFile /var/www/.htpasswd 
    AuthName "my radbad dev site" 
    AuthType Basic 
    Require valid-user 
</Directory> 

は、私は成功せず、次のようなものを試してみた:

<Location "/node/1334"> 
    Allow from all 
    Satisfy any 
</Location> 

答えて

3

あなたはWebフォームISN」ので、そのようにそれを行うことはできませんファイルは、Drupalに与えた情報(DBに入れた情報)から動的に生成されます。すべてのDrupal URI(アップロードされたファイルを除く)はindex.phpによって正しい場所に送られます。 httpauthに、index.phpに自由にアクセスでき、時にはauthが必要なことがあることを伝える方法はありません。

Drupalモジュール経由でアクセスを制御するにはいくつかのオプションがあります(ライブサイトがDrupalの場合は同じWebフォームを提供できますが、httpauthで微調整するだけで問題は解決しません)。

+0

ええ、意味があります。残念なことに、フォームはモデレートの目的でライブサイト上にあることはできません(サイトの設計が不適切でした)。おそらくACLモジュールを調べます。 – imgrgry

+0

ACLは素晴らしいですが、単なるAPIだということに留意してください。実際に何かをするUIを実際に提供するには、まだnode_accessまたは多くの代替手段の1つが必要です。 :) – HedgeMage

0

<Location>ディレクティブは、.htaccessが処理された後に適用されます。つまり、mod_rewriteはすでにURLを今のところ/index.php?q=node/1334としています。クエリ文字列に基づく構成には<Location>を使用できないため、これは悪いことです。詳細は、<Location> directiveおよびHow the sections are mergedを参照してください。

Drupalデータベースを他のURLの下で利用できるように、外部からアクセスできないように、まったく別の解決策を考えなければなりません。

+0

webformは* Drupalデータベースではありません。 Webformモジュールによってデータベースの情報から構築されます。 WebFormデータを取得し、Webフォームモジュールの機能をDrupalの外部で正確に再現するための特別なスタンドアロンWebアプリケーションを作成する作業(新しいDrupalサイトが途中で行われているときの作業の無駄)に移動したい場合を除き、使用可能なフォームを取得します。 – HedgeMage

+0

@HedgeMage追加のDrupalインストールを確実にセットアップすることはオプションです。私はgigantorTRONが決定するためにそれを残しました。彼のソリューションがうまくいかない理由を指摘しただけです。これがdownvoteの価値があると思うなら...前に進んでください。 – Oswald

+0

*それは完璧な意味がありますが、あなたの答えではっきりしていません...ダウンボートを削除して編集しています。 – HedgeMage

0

HTTP認証ルートに移動する場合は、.htaccessを編集して.htpasswdファイルを作成する代わりに、the Secure Site moduleを検討してください。これはエラーが起こりやすいプロセスですが、セキュアサイトでは、セキュアから除外するパスを入力するためのフォームが用意されています。さらに、Drupal認証システムを使用しているため、Drupalの役割と権限に基づいてサイトに人を拒否または許可することができます。

関連する問題