32nd

value-serverのmigration後に500エラー頻繁中
.htaccess無効にしたら動くから多分apache2.2->2.4のせい

とりあえず治った気がするけど、穴がないか不安
依頼すればサーバーログ見せてくれるのだろうか

phpのversionとか疑ったけど、
やはりwordpress dir下の.htaccessでbasic認証設定していた箇所が原因だった模様。

旧環境での.htaccess

AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthName "message-for-prompt"
AuthType Basic

<Files "wp-login.php">
 Require valid-user
</Files>

<Files "xmlrpc.php">
 Require valid-user
</Files>

(略)

<FilesMatch "\/?wp-admin">
 Require valid-user
</FilesMatch>

これだと新環境は500 Server errorしてしまう。

AuthUserFileあたりがFiles,FilesMatchの要素にいれるとエラーが発生しない1
Apacheのdoc読んでいたら<Files ~ reg>は非推奨という記載も見つけたので2
<FilesMatch>に使って下記のように更新。

新環境向けの.htaccess

<FilesMatch "(wp-login.php|xmlrpc.php|wp-admin)">
 AuthUserFile /path/to/.htpasswd
 AuthGroupFile /dev/null
 AuthName "message-for-prompt"
 AuthType Basic
 Require valid-user
</FilesMatch>

以前はsite-health.phpを例外にしてたようだけど、いつの間にか要らなくなった?

専門でないのでコピペ運用してたけど、ドキュメント読んで真面目に考えだすと我ながら不安になる構成。。。
でもVPS借りて運用する気力もないので当面はこのままかなぁ。


  1. Try-and-errorの結果なのでLogicなし 

  2. “ただし、<FilesMatch>を使う方が推奨されています。” in https://httpd.apache.org/docs/2.4/ja/mod/core.html#files