
のような仮想ディレクトリ構造を持つサイトがあります。mysite.com/folder/title
これは実際には .htaccess を に書き換えたものですmysite.com/f/index.php?p=title
。 .htaccess を使用してフォルダをパスワード保護したいのですfolder
が、実際のフォルダでそれを行う方法はわかっています。 しかし、メインサイト をパスワード保護したくありません。mysite.com
現在、 .htaccess ファイルを ディレクトリに置くと、とmysite.com
が保護されます。 の保護も試しました。mysite.com
mysite.com/folder
mysite.com/f
mysite.com/folder
.htaccessのみを使用して保護するにはどうすればよいですか?
.htaccess の内容mysite.com
。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^folder/(.*)$ /f/index.php?p=$1 [PT,L,QSA]
RewriteRule ^folder/*$ /f/index.php [L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
ここで試した .htaccess ファイルをmysite.com/f
他の .htaccess ファイルに移動すると、サイト全体が正常に保護されるので、パスが正しいことがわかります。
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /home/myusername/.htpasswd
答え1
まず、その設定(書き換えルール)を.htaccessファイルに入れるのではなく、ディレクトリセクションの下のメイン設定ファイルに入れる必要があります(そのファイルにアクセスできると仮定)。Apacheのドキュメントではその理由が説明されている。
AllowOverride 設定が正しいことを確認してください。すべて正しく設定されていれば、指定した .htaccess ファイルを mysite/f フォルダーに置くだけで、パスワード保護が十分になります。