3

mysite.com/folder/title実際には .htaccess への書き換えのような仮想ディレクトリ構造を持つサイトがありmysite.com/f/index.php?p=titleます。フォルダーを .htaccess でパスワード保護したいのですfolderが、実際のフォルダーでそれを行う方法を知っています。しかし、私はメインサイトをパスワードで保護したくありませんmysite.com.htaccessファイルをmysite.comディレクトリに置くと、.htaccessファイルを保護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移動すると、サイト全体が正常に保護されるmysite.comため、パスが正しいことがわかります。サブディレクトリにある場合、パスワード プロンプトではなく 404 エラーが生成されます。

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myusername/.htpasswd 
require valid-user
4

3 に答える 3

1

古いスレッドは古いです...

メインサイトを維持しながらサブドメインを保護するパスワードという同様の問題を抱えているときに、これに出くわしました。

解決策は、私が最初に考えたよりも簡単でした。

document_root/.htaccess では、domain.com/wiki が domain.com/w にリダイレクトされていました (その方がクリーンだから? 笑):

RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

document_root/wiki/.htaccess では、wiki ディレクトリはパスワードで保護されていました:

AuthType Basic
AuthName "Restricted"
AuthUserFile "/home/user/.htpasswds/public_html/wiki/passwd"
require valid-user

この行を document_root/.htaccess の先頭に追加しただけなので、次のようになります。

AuthType None
RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

domain.com はパスワード保護されなくなり、domain.com/wiki は意図したとおりにパスワード保護付きでリダイレクトされます。

それが他の誰かに役立つことを願っています。

于 2012-03-14T14:59:37.977 に答える
0

機能することの 1 つ (ただし、最も洗練されたソリューションではありません) は、実際に "folder" という名前のフォルダー (またはパスワードで保護しようとしている仮想フォルダー) を作成し、.htaccess をそのフォルダーに入れることです。

于 2010-10-18T20:53:49.823 に答える
0

Apache 2.2 を使用しているとします。

...そして、サーバー構成を変更する権限がないマシンでサーバーが実行されていること

...次に、必要なルールで mysite.com/f/.htaccess を作成します。

これをいつ使用し、いつ使用しないかについての良い議論は、ここにあります。

于 2011-07-04T23:00:34.620 に答える