結構前に作ったWordpressサイトをリニューアルしようと思ったら数々の課題にぶつかりました。
なんとか課題を全部解消できたので忘備録として載せておきます。
WordPressをなぜマルチサイトにしたのかさえ覚えていませんがそのせいでSSL化さえ難しくなってしまいました。
そのためこちらのサイトの抱えている沢山の問題を解決することにしました。
- マルチサイトを解消する
- マルチサイトをSSL化する
- パーマリンクを変更する
- サブディレクトリにインストールされているWPをメインディレクトリに移動する
- ルートディレクトリにあったHTMLサイトからダイレクトリンクを貼る
マルチサイトは設定からURL変更できない
以前も別のWordpressサイトでSSL化を行いました。
サーバーのSSL化が済んでいればあとはWordpress上で設定からhttpをhttpsに書き変えるだけです。
今回はもう分かってるし楽勝と思っていたら設定からURLがいじれない。
なぜかと思って調べていると、
マルチサイトだとどうやら設定からURLをいじることはできないということがわかりました。
先日このサイトはマルチサイト設定になっていることに気づきましたが
簡単にシングル化できそうにないので放置していましたが、
これを機にチャレンジすることにしました。
逆に言えばシングルサイトにしてしまえばSSL化は簡単にできるので
まずはシングルサイト化してみます。
このようにサイトネットワークというかたちで複数のサイトを登録できるようになっています。
幸いだったのがサイトがネットワーク化していたにもかかわらず、サイトは一つしかないことでした。
これが複数あったりすると、投稿が統合されたりして大変なようです。
バックアップを取る
何か大きな作業をする時には
必ずバックアップを取ります。
このサイトはエントリーが少ないので最悪再インストールでもいいのですが
一応長く運営(放置)しているので
評価は引き継ぎたいと思い、適切に引っ越しできたらいいなと思います。
ただマイナス評価もついてそうなので、微妙なんですが。
ということで最悪消えてもいいやという軽い心で行います。
wp-config.phpを編集
まずはWordpressがインストールされているディレクトリにあるwp-config.phpを編集します。
私は一度ダウンロードしワードパッドで編集し戻しましたが、サーバーの管理画面からも直接いじれると思います。
さてやることは結構簡単で
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/example/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
という記述を削除するだけでした。
.htaccessを編集
つぎに.htaccessを編集します。これも私はダウンロードしてメモ帳で編集しましたが、サーバーの管理画面からも行けると思います。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
上記から下記のように書き換えて保存します。
# 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
無事にシングルサイト化できました!
まだこの時点ではhttpなので「セキュリティ保護なし」のメッセージが出ています
SSL化で仕上げ
あとは設定>一般設定からURLを変更するだけです。(画面は英語ですみません)
WordPressアドレス、サイトアドレス両方のhttpにsを付けてhttpsにして保存します。
これでSSL化されていますね。警告メッセージも消えました。
さて次はサブディレクトリにあるワードプレスをルートディレクトリに移動します。