WordPressのダッシュボードで、サイトヘルスが”要改善”に―――「 Authorizationヘッダー がない」というのが問題といわれました。
サイトヘルスの改善指示は「改善しなくてもサイトの表示に問題はないもの」が圧倒的に多いですが、改善を指摘されたら分かる範囲で対処するようにしています。
「 Authorizationヘッダー 」とは?
Authorizationヘッダー とは「サーバーから認可を受けるための要求」です(そのページもしくはサイトを表示するための認可)。
どんなサイトにも扉があるとしましょう。
部外者がサイトを訪問するには扉をあけなければならず、管理者はこの扉にIDやPWを使って鍵をかけることができますが、最初から不特定多数の訪問を受け入れているサイトは扉に鍵をかけることはありません。
このブログも公開対象は「誰でも」なので、扉に鍵をかけていません。
Authorizationヘッダー は 「扉を開けるための鍵の要求」。
今回の注意はこのブログのセキュリティの心配、「鍵がしまっていない扉を、鍵をもらおうともせず他人が通り抜けているけれどいいのか?」と聞いていることになります。
「 Authorizationヘッダー がなくてもいい」にする方法
今後もサイトの扉に鍵をつけるつもりがない場合、 Authorizationヘッダー については、
- 「 Authorizationヘッダー がない」という警告を放置する
- 「このサイトに鍵をかけるつもりはありません(=誰に対しても認可を出している)」と宣言してしまう
Authorizationヘッダーについて先に宣言する
今回警告が出たことから分かるように、HTTPプロトコルの設計では「このサイトは誰に対しても認可を出しています」と宣言することをマナーとして推奨しています。
「誰に対しても認可を出しています」の宣言方法
レンタルサーバーのフォルダにある『.htaccess』ファイルを編集します。
私はエックスサーバーを利用しているので、「サーバーパネル>ホームページ>.htaccess編集」で、.htaccessファイルを編集します。
作業内容としては、「Authorizationヘッダーがついていなければ、HTTP_AUTHORIZATIONにヘッダーの内容を設定する」という命令を追加することになるそうですが……難しかったのでネット情報をそのまま実行しました。
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode
# BEGIN WordPress
↓編集後
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode
# BEGIN WordPress
コメント