LoginSignup
2
1

More than 1 year has passed since last update.

特定のURLだけBasic認証を掛けない

Last updated at Posted at 2022-03-07

まだ出来ない

もう散々やってるのに未だにスムーズに行かないのは
多分Apache2.0/2.2/2.4の書き方を混在させ続けているせい...
変に互換があると良くないです。

条件

  • 特定のIPアドレスは全て認証無しでアクセス可
  • ↑以外はBasic認証が必須
  • 特定のURL(/api)はBasic認証不要

対応

ssl-vhost-nikusui.conf
	SetEnvIf Request_URI '/api' valid-url
	SetEnvIf Request_URI '^/index.php' cms

	AuthType Basic
	AuthName "Available only authorized users by Osaka Tokyo"
	AuthUserFile /home/nikusui/.htpasswd
	#Require valid-user

	<RequireAny>
		Require ip 999.999.999.999
		Require valid-user
		Require env valid-url
		Require env cms
	</RequireAny>

解説

ミソになるのはRequireAnyディレクティブ。
いずれかの条件を満たせばOKのやつ。

Basic認証の一連の処理の中に↓を含めないこと。

Require valid-user

index.phpをcmsと命名して除外しているのは
WordpressとかLaravelでルートパラメータのRewriteを失敗しないための除外
なのでFrameworkやCMSでない場合は不要

Order Allow/Denyとかはもう使わない前提でやらないとな〜と思った。
(そもそも最近apacheじゃなくてnginxが個人的な主流でもあるので...)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1