始めに
既に稼働中のWordPressのサイトをEC2へ引っ越しする過程で環境構築していて躓いたので、その備忘録です。
開発環境
EC2,RDS,Apache(2.4),WordPress
実現したいこと
example.com/wp/ でアクセスした時にwordpressのサイトが表示される。
※サブディレクトリ名を wp とします。
ハマったこと
/wp/でアクセスした時に、wordpressの一部のページは表示されるけど、サイト内の別ページに飛ぼうとすると「404」になってしまう。。。
apacheのドキュメントルートや、WordPressのURLの設定周りを色々触るも解決できず、chatGPTさんに聞いてみたら割とサクッと解決してくれました。
結論
下記3つの設定を見直す必要がある!
①WordPressのURLの設定
②.htaccessファイルの設定
③Apacheの設定
①WordPressのURLの設定
管理画面にすら入れなかったので、直接編集しました。
// wp-config.php に以下を追記
define('WP_HOME','https://example.com/wp/');
define('WP_SITEURL','https://example.com/wp/');
②.htaccessファイルの設定
Apacheが正しくリダイレクトするようにするためのものです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
③Apacheの設定
Apacheが.htaccessファイルを読み込むことができるようにするためのものです。
これを追加して、Apacheを再起動してください。
<Directory "/var/www/html/hp">
AllowOverride All
</Directory>
終わりに
chatGPTさんが偉大ということです。