前提
http://localhost/wp/ にwordpressをインストールしている状態
http://localhost/wp/ がトップページのurlとなっている
やりたい事
urlの末尾からwpを削除し、
http://localhost/ をトップページのurlにしたい
手順
- 設定 > 一般設定のサイトアドレスからwpを削除
2. wpディレクトリ内の.htaccessとindex.phpを、一個上の階層つまりwpディレクトリと同階層にコピーする
3. コピーしたindex.phpの下記箇所にwpを追加
require dirname( __FILE__ ) . '/wp-blog-header.php';
require dirname( __FILE__ ) . '/wp/wp-blog-header.php';
追加するwpの部分はサブディレクトリ と同じ名称にする
4. .htaccessのコードを2行修正
#SITEGUARD_PLUGIN_SETTINGS_START
#SITEGUARD_PLUGIN_SETTINGS_END
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
RewriteBaseとRewriteRuleのパスからwpを削除する形
#SITEGUARD_PLUGIN_SETTINGS_START
#SITEGUARD_PLUGIN_SETTINGS_END
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
参考: https://wordpress-web.and-ha.com/wordpress-security/