開発サーバーで基本認証をセットアップしています。httpd.conf
これは、Web サイトの VirtualHost のファイル内にセットアップされています。特定のディレクトリを除外するように設定する必要がありましたが、問題は発生せず、すべて正常に動作します。
この問題は、ファイルmod_rewrite
内の私のルールを通過した URL を除外することにありました。.htaccess
私の設定では、すべての URL がindex.php
ファイルを通過し、そこから関連するコードが検出されて実行されます。除外したい URL ( /businesses/upload_logo
) を他の URL と同じように追加しようとしましたが、それでも認証が必要です。これは私が現在持っているものです:
...
<Location />
SetEnvIf Request_URI "/businesses/upload_logo" noauth=1
SetEnvIf Request_URI "/api/.*" noauth=1
AuthType Basic
AuthName "Private"
AuthUserFile ****
Require valid-user
Order deny,allow
Satisfy any
Deny from all
Allow from env=noauth
</Location>
....
こことここで私のものに似た質問を見つけましたが、答えは私がすでに試していることだけを教えてくれます。
他の解決策も考えましたが、これは最後の手段です。現在行っている方法で可能かどうかを確認したい:
- 代わりに私のphpコード内で基本認証を設定してください
- 現状面倒すぎる
- 代わりに認証を
.htaccess
ファイルに 入れます- 認証を 3 つのサーバーの 1 つだけで実行したいので、まだこれを実行したくありませんでした。もう少し使用できることは承知しています
SetEnvIf HOST ...
が、最初にこの方法で修正できるかどうかを確認しています。
- 認証を 3 つのサーバーの 1 つだけで実行したいので、まだこれを実行したくありませんでした。もう少し使用できることは承知しています
mod_rewrite
ルール:
...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]