は2日間検索していますので、誰かが助けてくれることを望むので、このプロジェクトのmod_rewriteと時間制約の理解が不足しているため、.htaccessのサブディレクトリ 'overriding'の親htaccess
クライアントが正しいクッキーを持っていない場合、ルートのindex.phpへのすべての要求を書き換えることを目指し
。 クライアントが正しいCookieを持っていれば、希望どおりブラウズすることができます。
問題
なwww.mydomain.com/subdir/index.phpのarn'tなどの要求がリダイレクトなって、私のサブディレクトリにhtaccessファイルは、私のルートhtaccessファイルよりも優先を取っています。
マイルートの.htaccess
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?url=$0 [NC]
私のサブディレクトリにhtaccessを
RewriteEngine On
RewriteBase/
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
私は、パスワード保護された領域を作成しようとしている理想的
追加情報すべてのリクエストはindex.phpにルーティングされますパスワードを入力することができ、確認されるとクッキーが作成され、コンテンツおよびサブディレクトリのフリーブラウジングが可能になります。ですから、これを達成するためのよりよい方法があれば教えてください。カスタムログイン、エラー、スプラッシュページが必要なので、私は.htpasswdに行っていません。
また、サブディレクトリ.htaccessはExpressionEngine URLハンドラです。
ありがとうございました。
にかかわらず、あなたがこの問題を解決する方法の、クッキーの存在を確認することは良くありませんセキュリティ。偽装するのは簡単ではなく、クッキー内のデータを検証するのではなく、その存在を確認するだけなので)、あなたの「セキュリティ」システムはバイパスするのが簡単です。 –
@ちょっとした提案ですが、あなたがディレクトリへのアクセスを許可したい場合は、HTTP認証の実装について考えてください:http://uk.php.net/manual/en/features.http-auth.php –