Webサイトにアクセス制限をしたい場合がある.IPアドレスによる制限の場合,次のように設定する.
<FilesMatch "wp-login.php|wp-admin">
order deny,allow
deny from all
allow from 許可するIPアドレス
</FilesMatch>
# 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
上記は,全部禁止した上で一部許可する設定.
“# BEGIN WordPress” 以降は,WordPress用の設定.
ポイント1 : “order deny,allow” の カンマ前後に空白を入れない.この説明が抜けているサイトばかり.
ポイント2 : 全部禁止して一部許可=”order deny,allow”,全部許可して一部禁止=”order allow,deny”
ちなみに,WordPressの部分の設定は
「ファイルやディレクトリがない場合は,すべてindex.phpで処理してね」
ということです.
WordPerssでは,見た目は階層構造になっている(https://xxx.com/hoge/fuga/poo/)場合でも,必ずindex.phpが動作し,URLのパスがindex.phpに渡されて内部で分岐する,という処理を行っている.