Xサーバーなどのレンタルサーバーで作成したWordPressサイトの常時SSL化(https)とサブディレクトリからサブドメインへの301転送を同時に.htaccessで設定する方法を紹介します。
WordPress 常時SSL化とサブディレクトリからサブドメインへの301転送設定
サブドメインでの運用のメリットについて
一つのドメインから2つのウェブサイトに分ける事が出来るサブドメインでの運用方法は、2つのサイト間の評価を引き継がない方法であるのと、それぞれのサブドメインに別々のWordPressテーマを使用する事が出来る運用方法となっております。
例えば、プロフィールや会社紹介などの内容が薄いページと、商品紹介やブログなどの内容が濃いページが混在しているウェブサイトを作ると、内容の薄いページが足を引っ張ってGoogle検索のランクが全体的に下がってしまう可能性があります。
しかし、サブドメインを使用して内容が薄いページと濃いページを2つのウェブサイトに分ける事でGoogle検索からは2つのサイトとして見られ、片方のウェブサイトの評価が低くてももう一つのウェブサイトの評価が下がらないというメリットがあります。
現在2つのウェブサイトに分けて運用しておりますが、YouTube動画の紹介とプロフィールページは平均掲載順位が34.2位で、ブログや商品紹介などをメインとしているサブドメインの内容が濃いウェブサイトは16.7位と、検索結果のパフォーマンスでは、別々の評価となっております。
サブドメインでの運用のデメリットについて
このウェブサイトの運営にはXサーバーを使用しているのですが、WordPressサイトを増やそうとすると、サブディレクトリでの新規インストールが基本となります。
また、一昔前は、httpのWebサイトでも常時SSL化(常時https化)したWebサイトでも評価は変わらなかったのですが、常時SSL化したサイトが優先的に上位にランク付けされるようになり、やがて常時SSL化に対応しなかったサイトは、主要なブラウザからは開けないように警告を表示するようにまでなりました。
Xサーバーは無料独自SSLを追加する事で常時SSL化に対応する事が出来るのですが、WordPressサイトを新規で作成をすると、SSL非対応のhttpで新規にサイトが作られるだけでなく、http://example.comとhttp://www.example.comの2つのURLからアクセスする事が出来る上に、常時SSL化に対応する事でhttps://example.comとhttps://www.example.comの合計で4つのURLからアクセス出来るようになります。
そうなると、100ページのウェブサイトを運営しているのであれば、URLが違う400ページがサーチコンソールでインデックスされるようになり、内容が重複している300ページが除外されて、ウェブサイト全体のランクが下げられてしまう事があります。
サブディレクトリでの運用をするのであれば、httpとwwwのある無しでURLをリダイレクトすれば良いのですが、サブドメインでの運用はさらにサブディレクトリからサブドメインへの転送設定もしなくてはいけなくなるので、さらに話がややこしくなってしまいます。
httpsのwww無しにリダイレクトする設定
※example.comの部分は運用しているウェブサイトのドメインに書き換えて下さい。
httpやwwwのある無しで4つのURLが作成されてしまうため、http://example.com・http://www.example.com・https://www.example.comの3つのURLからhttps://example.comに全てリダイレクトする設定を行います。
WordPress側の設定とサーバー側の.htaccessに手を加えなくてはいけなくなるため、万が一に備えてバックアップを取ってから設定をするようにして下さい。
まず、WordPressの設定でWordPressアドレスとサイトアドレスを、httpsのURLに書き換えておきます。http://example.comであればhttps://example.comに変更し、サブドメインでの運用であればhttp://example.com/blog/からhttps://blog.example.comに変更をします。
次にサーバー設定の.htaccess編集画面を開いて、下記コードをなるべく上に記載いたします。私の場合は.htaccessの一番上に追記いたしました。
RewriteEngine On
RewriteBase /
# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://example.com/$1 [R=301,L]
# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
</IfModule>
この設定の一番目で、httpでアクセスした場合に全てのアクセスをhttps://example.com/に301リダイレクトする設定となり、2番目のコードでhttps://wwwへのアクセスをhttps://example.com/に301リダイレクトする設定となり、このコードを追加する事で全てのアクセスをwww無しの常時SSL化したURLに統一する事が出来ます。
サブドメインでWebサイトを構築した際に追加する設定
Xサーバーの場合はサーバー管理のサイト転送設定で.htaccessに自動的に追加出来る項目となっておりますが、そちらで設定を行うと.htaccessの一番下にサブドメインへのリダイレクトコードが追加されてしまうため、手動でhttpsへのリダイレクト設定の直下に追記いたしました。
特に記載は無いですが、上記サブドメインへのリダイレクトも301でリダイレクトをする設定となります。
https://www.blog.example.com/などのURLは、上記設定で転送出来ていないようですが、下手に手を加えると無限ループしてしまってうまく設定出来ませんでした。
今の所この設定が一番上手く機能しているのではないかと思います。
https://blog.example.com/のサブドメインでWordpressサイトを運用する場合は、下記コード全てを.htaccessに追記します。
RewriteEngine On
RewriteBase /
# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://example.com/$1 [R=301,L]
# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
</IfModule>
Redirect /blog/ “https://blog.example.com/”
これで、SSL化したサブドメインでWordPressサイトを運営する場合の設定となります。
この記事へのコメントはありません。