コンテンツへスキップ

httpからhttps、www無からwww有へのリダイレクト(mod_rewrite)

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

  1. https://www.miki-ie.com
  2. https://www.miki-ie.com
  3. https://www.miki-ie.com

転送先のURL

  1. 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.)

  1. https://www.miki-ie.com
  2. https://www.miki-ie.com
  3. https://www.miki-ie.com
  4. http://www2.miki-ie.com
  5. https://ns.miki-ie.com
  6. 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


 



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA