サイトアドレスからサブディレクトリを外したい
デフォルトでWordPressを導入した場合、サブディレクトリがサイトアドレスになります。対応策は、リダイレクトプラグインを使用します。
システム構成
Synology NAS
- 2020/07現在
- DS920+ (DS918+からWordPressを載せ替え, 2020/07)
- Disk Station Manager, Version 6.2.3-25426 Update 2 (2020/09/16現在)
WordPress
- Version : 5.5.1-ja
- Theme : Twenty Twenty
- Editor : Gutenberg (標準エディタ)
その場合、以下のような問題点があります
- 間借りしているようで、見栄えが良くない
- Google Adsenseは、サブディレクトを認めない
なぜ、サブディレクトリがつくられるか
WordPressをインストールすると、通常、「サプディレクトリ」が自動で設定されたり、自分が設定したりして作られます、そこにWordPressのファイル群が収められます。
例えば以下のようなサブディレクトリが作られる
- wordpress
- wp
- myblog
デフォルト設定では、この「サブディレクトリ」を含めたアドレスがサイトアドレスになります。
例えば以下のように、
- harikiri.diskstation.me/wordpress
- harikiri.diskstation.me/wp
- harikiri.diskstation.me/myblog (当サイト)
サブディレクトリを外す手順と注意点
作業概要
- Synology NASのWeb Station設定の確認
- WordPressの設定
- サブディレクトリにあるindex.phpと.htaccessの複製を、サブディレクトリの上(ルート)に置く
- index.phpのアクセス権と内容の確認
- .htaccessのアクセス権と内容の確認
- 動作チェック
Synology NASの設定の確認
Web Stationの設定
複数のサイト可能設定
DSM, Version 6.2.2-24922 Update 5
webまでをサブディレクトリとして設定
WordPress/ダッシュボードで設定
WordPress, Version 5.3.2-Ja
サイトアドレスの変更は、WordPressのダッシュボードから「設定 -> 一般」にあるサイトアドレスの設定で、サブディレクトリを削除する(下図を参照)。
index.phpファイルの内容
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/myblog/wp-blog-header.php' );
もしも、index.phpのアクセス権限が不適切である場合、access deniedが表示される
.htaccessファイルの内
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
もしも、この.htaccessファイルがないと、404が表示される
サブディレクトリのリダイレクト設定
試したプラグイン
以下の、3つのプラグインを試してみました。
Simple 301 Redirectsは、「テストされていない」とのことで心配がありましたが、やはり、複雑なことをした途端に問題が生じました。詳細は以下を参照してください。
- Simple 301 Redirects
- 301 Redirects
- Redirection
1. Simple 301 Redirectsは、ボツ
最初に試したのが、”Simple 301 Redirects”でした。以下の図に示したように、サブディレクトリ(/myblog → /)を取り除くリダイレクトは問題ありませんでした。
しかし、正規表現(/myblog/* → /*)の設定を追加した時に、ブラウザからのサイトへのアクセスが、できなくなりました。
その対策は、ターミナルモードでプラグイン名(simple-301-redirects)を、変更(simple-301-redirects.bak)することで、ブラウザからのアクセスが可能にした後、WordPressのダッシュボードに入って、ターミナルモードでプラグイン名を元に戻し、最後にダッシュボードからプラグインに入り、simple 301 redirectsを削除することで対応できました。
もしも、この設定がないと、以下の図のように、”ページが見つかりません”が表示される
2. 301 Redirects、は使える
301 Redirectsは、Simple 301 Redirectsと同様にマニュアルによる設定を主軸したプラグインで、特に問題は生じませんでした。
3. Redirection、を採用
初期設定の後は、自分の必要な設定を作れます。作ったルールの有効/無効が可能なので、テスト環境の検討には重宝します。結局は、このRedirectionを使用していくことにしました。
Redirectionは、初期設定において、WordPressの現状を検査して、Redirectした方が良いものを自動で抽出して、設定してくれます。
以上により、はりきりサイトは、はれてサブディレクトリが外れたサイトアドレスでアクセスが可能となりました。
注意点
以下の2点について、問題が生じます。その問題の内容と解決法を示しまし
問題点
有料のプラグインで、アクティベーションが切れる問題がありました。
- GT Photo and Video Galleries LiteからPro版へのアクティベーションが切れる
- Cool Timeline Pro版のアクティベーションが切れる
解決策
- GT Photo and Video Galleriesについては作者に連絡中です。分かり次第掲載します。おそらく、サイトアドレスを特定してライセンスを付与していると思われます。
- Cool Timeline Pro版については、夕方3時頃に連絡後、5分で対応してくれました。「ライセンス情報をアップデートしたから、もう一度アクティベーションしてね」との連絡でした。
編集履歴
- 2020/02/07 はりきり(Mr)
- 2020/02/12 追記(プラグインの有料版のアクティベーションが切れる問題)
- 2020/02/23 AMPに対応
- 2020/07/16 文言整備