Webサイトは常時SSLが必須となってきました。
しかも、簡単なSSL証明書は、無料で簡単に作成できるようになりました。Synology無料SSL証明書導入
httpからhttpsへのリダイレクト(転送)
「https://www.miki-ie.com」で運用してきたWebサイトを、「https://www.miki-ie.com」に転送します。
httpでWEBアクセスした場合が、暗号化なしでWEBアクセスをした場合となり、
httpsでWEBアクセスした場合は、インターネット通信がSSL証明書(SSL/TLSでの暗号化)により暗号化された通信となります。
一昔前は、WEBショッピングや会員サイトなど、個人情報などを扱う、機密性のあるサイトのみが利用していました。
特にSSL証明書は、年間数万のコストが発生していました。
利用しているサーバーをSSL化したとしても、今までの運用によって、
既に登録されたブックマークやほかサイトからのリンクや、Google等の検索エンジンからはhttp経由の古いURLにアクセスされる可能性があります。
検索エンジンの検索結果(検索順位)において、不利な場合もあるので、すべてのサイトアクセスをSSL経由に統一する設定は実施しておきたい内容です。
www無しからwww有りへのリダイレクト(転送)
「https://www.miki-ie.com」でアクセスしてきたWEBサイトを、「https://www.miki-ie.com」に転送します。
サイト運営時に、特に意識してURLを統一していても、他サイトから被リンクを受けた場合などは、
他サイトオーナー様のリンク作成方法に依存してしまうので、
www無しのURLアクセスも、www有りのURLアクセスへ自サーバーで転送する設定をおすすめします。
(www無し、有りは好みとなります。どちらかに統一できれば良いと思います)
このURL不統一も検索エンジンの検索結果(検索順位)に影響する場合があります。運用するURLアドレスの統一は是非実施しておきたい内容です。
URL転送設定「mod_rewrite」
URL転送には、Apache(Webサーバー)の、mod_rewriteという機能を使い転送を行います。
今回は下記の転送を設定します。
転送対象のURL
- https://www.miki-ie.com
- https://www.miki-ie.com
- https://www.miki-ie.com
転送先のURL
- https://www.miki-ie.com
通常WEBサーバのWEBコンテンツを公開しているフォルダーのトップページに
「.htaccess」ファイルを作成する方法で設定します。
その他、phpでプログラム的に実現や、同様の設定内容をhttpd.confなどWEBサーバ自体の設定で実現することも可能です。
.htaccessファイル編集
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# httpからhttpsへのリダイレクト(転送)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://www.miki-ie.com/$1 [R=301,L]
# www無しからwww有りへのリダイレクト(転送)
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^miki-ie.com$
RewriteRule ^(.*)$ https://www.miki-ie.com/$1 [R=301,L]
www無しからwww有りへのリダイレクト(転送)の記載方法ですが、
すべてwww有りでアクセスさせたいので、以下の記載方法が個人的には好きです。
www無しやwww以外(ftp, mail, nsなど)からのアクセスをhttps://www.へリダイレクト(転送)
ただ、Virtual Serverで運用している場合には、既にwwwありのみホームページが表示される設定かもしれません。
(Virtual Server設定で、「https://www.miki-ie.com」アクセスを設定した公開フォルダ(「/volume1/web/wordpress」など)とマッピング。)
転送対象のURLを拡大(RewriteCond %{HTTP_HOST} !^www.)
- https://www.miki-ie.com
- https://www.miki-ie.com
- https://www.miki-ie.com
- http://www2.miki-ie.com
- https://ns.miki-ie.com
- https://hogehoge.miki-ie.com
などなど
# www以外からwww有りへのリダイレクト(転送)
# www以外からwww有りへのリダイレクト(転送)
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ https://www.miki-ie.com/$1 [R=301,L]
変更前「.htaccess」
@Synology$ cat /volume1/web/wordpress/.htaccess
# Synology PHP
AddHandler default-handler .htm .html .shtml
AddHandler php-fastcgi .php
AddType text/html .php
Action php-fastcgi /php56-fpm-handler.fcgi
# Synology PHP
# 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>
変更後「.htaccess」
@Synology$ cat /volume1/web/wordpress/.htaccess
# Synology PHP
AddHandler default-handler .htm .html .shtml
AddHandler php-fastcgi .php
AddType text/html .php
Action php-fastcgi /php56-fpm-handler.fcgi
# Synology PHP
# 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]
# httpからhttpsへのリダイレクト(転送)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://www.miki-ie.com/$1 [R=301,L]
# www以外からwww有りへのリダイレクト(転送)
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ https://www.miki-ie.com/$1 [R=301,L]
</IfModule>
# END WordPress