実現したいこと
Wordpressサイトにて、
.htaccessでサイト全体にBasic認証をかけているのですが、
Wordpressの特定のページである/lp/(固定ページ)のみ
Basic認証を解除したい。
発生している問題・分からないこと
https://insource-mkd.co.jp/staff-blog/10898/
こちらの記事を参考に.htaccessの記述を修正しても、
上手くいきませんでした。
Require env REDIRECT_valid-uri
が何かしらの理由で効いていないのが一つの原因かと思われますが、
問題の根本的な原因はわからない状況です。
該当のソースコード
# Basic認証の設定 AuthUserfile /home/users/2/sub.jp-aimodel/web/aimodel-d/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic # 特定URLのとき環境変数設定 SetEnvIf Request_URI "^/lp(/.*)?$" valid-uri # 以下の場合アクセス許可 <RequireAny> Require valid-user Require env valid-uri Require env REDIRECT_valid-uri </RequireAny> # BEGIN LSCACHE # END LSCACHE # BEGIN NON_LSCACHE # END NON_LSCACHE # BEGIN WordPress # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
記事には例として、/test/以下のディレクトリ全体が対象でしたので、
SetEnvIf Request_URI “^/test/*” valid-uri
今回は/lp/が対象URLでしたので、下記に変更しました。
SetEnvIf Request_URI “^/lp/*” valid-uri
ただ、対象URLは/lp/のみで、
より確実に/lp/に対してvalid-uriが効くように、
SetEnvIf Request_URI "^/lp(/.*)?$" valid-uri
こちらの正規表現を使用しております。
補足
WPバージョン:6.4.3
PHPバージョン:8.2.15
開発環境:mac
webサーバー:Apache
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。