Wordpressをherokuにインストールする場合はルーティングのhtaccessを自分で設置すること

タイトルママ。
ちょっとハマったのでメモ。

WordPressのインストール

以下の手順で通常通りwordpressをインストールした。

  1. herokuにインストール用のアプリを作成
  2. gitでローカルにclone
  3. 2のディレクトリ内にWordpress日本語版をダウンロードして展開
  4. herokuのアプリにmySQLのアドオン、ClearDBを入れる
  5. 環境変数から、DBの接続情報を確認。
    mysql://ユーザ名:パスワード@サーバ名/データベース?reconnect=true
  6. wp-config.phpにDB情報を反映
  7. PushしてDploy
  8. wp-admin/install.phpにアクセスして、サイト名やユーザー名などを設定してインストール。
  9. 完了

固定ページにアクセス

通常の投稿でもたぶん同じ事が起こると思うが、
最初から入っているサンプルの固定ページにアクセス。

http://YOUR-APP-NAME.herokuapp.com/sample-page/

アクセスを確認してから、特にソースは触らずに空でdeploy

再度上記の固定ページにアクセスすると、404 Notfound

ルーティング

ローカルに入れていたWordPressのディレクトとファイルを見比べていると、
ローカルのものはドキュメントルートに.htaccessがある。

中身を見ていると、リダイレクトしているよう。

どうやら、wordpressのインストール時に、wordpressのルートにルーティング用の.htaccessを自動で作成するよう。
それがdeployのタイミングで消えてしまい、リダイレクトがかからず、404となっていた。

.htaccessの中身は以下。

1
2
3
4
5
6
7
8
9
10
11
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

これを.htaccessの名前でwordpressのルートに保存してやり、git管理下においてやればよい。

これを置いた状態であれば、deployかけても問題なくアクセスが出来た。

   このエントリーをはてなブックマークに追加