1

私はドメインを持っており、開発用mattpotts.comのサブドメインをセットアップしており、dev.mattpotts.com準備ができたらファイルを通常のドメインにコピーします。

私のディレクトリ構造は次のとおりでありdev.mattpotts.comdev/

+-public_html/
  +-project1/
  +-project2/
  +-project3/
  +-dev/
    +-プロジェクト1
    +-project2
    +-project3

http://mattpotts.com/project1私は基本的に からへhttps://dev.mattpotts.com/project1を追加して行きたいと思っていますdev.

私は次のものを持っていて.htaccessdev/それは機能します。これを行う必要があるのは、https を強制することだけです。

RewriteEngine オン
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} dev
RewriteRule ^(.*)$ https://dev.mattpotts.com$1 [R,L]

ディレクトリで http 認証を安全に使用できるように、https を強制したいと考えています。しかし、以下のルールと組み合わせるとうまくいきません。.htpasswdセットアップはできましたが、ログインフォームがまだ表示されていません。

AuthType 基本
AuthName "開発保護領域"
AuthUserFile .htpasswd
有効なユーザーが必要

to セットのルールをうまく組み合わせるにはどうすればよいですか?.htaccess

編集、非常に奇妙なことが起こっています!

https://dev.mattpotts.com/project1/に「hello!」と表示される 非開発バージョンのサイトから (https に注意) http://dev.mattpotts.com/project1/に「hello dev!」と表示される (必要に応じて)開発バージョンから。何が起きてる?!

4

2 に答える 2

0

これらの問題は互いに独立している必要があります。「強制 HTTPS」部分が機能することを正しく理解していますか?

つまりAuthUserFile .htpasswd、間違った場所で .htpasswd を探している可能性があります。最も簡単な修正は、フル パスと名前をそこに置くAuthUserFile /home/matt/www/public_html/dev/.htpasswdことです (たとえば、dev ディレクトリがある場所)。

于 2010-01-27T13:26:00.320 に答える
0

ファイルの場所は教えてくれましたが、.htaccessファイルの場所を教えてくれませんでした.htpasswdAuthUserFileに関するApacheのドキュメントによると:

構文: AuthUserFileファイルパス

file-pathは、ユーザー ファイルへのパスです。絶対的でない場合 (つまり、スラッシュで始まらない場合)、 に対して相対的に扱われServerRootます。

つまり、 の.htpasswdような場所でを探してい/etc/apache2/.htpasswdます。したがって、.htpasswdファイルをそこに移動するか、ディレクティブにファイルへの絶対パスを含めます。

AuthType     Basic
AuthName     "Dev Protected Area"
AuthUserFile /home/mattpots.com/public_html/dev/.htpasswd
Require      valid-user

.htpasswdただし、セキュリティ上の理由から、ファイルをドキュメント ルートの外に置くことを強くお勧めします。

于 2010-01-27T13:37:03.950 に答える