
Forbidden
you don't have permission to access this resource.
などと表示され、WordPressの初期設定画面に飛べない場合。
WordPressのインストールされている一番上のディレクトリの.htaccess
に下記を追記
DirectoryIndex index.html index.htm index.php .ht
で解決する。
500 Internal Server Error
の場合も同じ。
最終的なコードはこんな感じになる↓
# BEGIN SAKURA Internet Inc.
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(css|js)$">
ExpiresDefault "access plus 1 week"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>
DirectoryIndex index.html index.htm index.php .ht
# END SAKURA Internet Inc.
ちなみにレンタルサーバーのConoha Wingならこのようなことは起きないので、こっちのほうがおすすめ。
2023年4月現在、このサイトはConoha Wingを借りて運営しています。
追記:原因発覚
さくらインターネットのwww
フォルダ直下に設置されている.htaccess
に余計な記述があるとこの現象が起こるらしい。
例えば自分の場合はwww
フォルダ直下の.htaccess
が下記のように記述されていた。
DirectoryIndex .ht
AuthUserFile /home/アカウント名/www/.htpasswd
AuthType Basic
AuthName "Web access"
Satisfy all
Order deny,allow
全員の担当者から引き継いだのでこの記述が元からあったのかは不明。
さくらインターネットに問い合わせたら「クイックインストールだけで普通はWordPressにアクセスできる」という旨の回答をもらったので、多分初期値では書かれていない。
ちなみに上記の記述は、
www
ディレクトリにアクセスする前にユーザーに基本認証を求めます。この基本認証は/home/アカウント名/www/.htpasswd
というパスワードファイルを用いて実施されます。これは不正なアクセスを防ぐための一般的な手段であり、特定の部分のWebサイトを保護するために用いられます。
chatgpt
Basic認証のことらしい。.htpasswdなんてファイルなかったから多分動いてないけど。
ブラウザでアクセスするときや、サーバー内部から該当ディレクトリにアクセスするときに.htpasswd
に定義されたユーザー名パスワードの入力を必要とするんだってさ。知らんけど。
なので、サイト毎のディレクトリ直下の.htaccess
を書き換えるのが面倒であれば、
このwww
直下の.htaccess
を削除するなり.htaccess1とか別の名前にするなりしてあげれば解決する。