URLで取得したドメインのルートを指定した際、WordPressのindex.phpを表示させる方法
設定で躓いたので、メモ代わりに残します。
課題
例えば取得したドメインがxyzyx.comだとします。wordpressディレクトリにindex.phpがあるとして、
https://xyzyx.com
とURLに指定した場合、
https://xyzyx.com/wordpress/
に変遷し、index.phpを表示させたい!
ところが初期設定のままだとhttps://xyzyx.com/index.htmlが表示されてしまいます。
環境
- Ubuntu 24.04 LTS
- Apache 2.4.58
- WordPress 6.5.4
Apacheの設定ファイルの修正
/etc/apache2/apache2.confの修正追記部分
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
/var/www/htmlに.htaccessを追加するため、AllowOverride Allを指定しています。
/etc/apache2/sites-available/000-default.confの追加修正部分
DocumentRootを/var/www/htmlから/var/www/html/wordpressにします。
#DocumentRoot /var/www/html
DocumentRoot /var/www/html/wordpress
.htaccess ファイルの作成および設定
/var/www/html/.htaccessの作成
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ /wordpress/index.php [L]
</IfModule>
/var/www/html/wordpress/.htaccessの修正
ループバックしたので、RewriteBaseを/wordpress/から/に変更します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#RewriteBase /wordpress/
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
設定の反映
mod_rewriteの有効化
a2enmod rewrite
a2enmod
は “Apache2 enable module” の略です。これに続けてモジュール名を指定することで、そのモジュールを有効化します。mod_rewrite
は、Apache HTTP サーバーのモジュールで、URL の書き換えを行うためのものです。.htaccessでの設定を反映させるには必要になります。
apache2の再起動
systemctl restart apache2
これでドメインルートにアクセスした場合は、wordpressフォルダのindex.phpが表示されるようになりました。
PR
コメント