URL リダイレクトの設定(Apache プラン)
Apache プランでは、.htaccess ファイルを配置することで URL リダイレクトの設定をおこなうことができます。(nginx プランのような管理画面上のメニューはなく、管理画面から URL リダイレクトの設定をおこなうことはできません)
リダイレクトを設定する
ダイレクトに関する設定を記述した .htaccess ファイルを作成し、アクセス制限を掛けたいディレクトリに FTP でアップロードします。
以下は、一般的に用いられるリダイレクト設定における参考例となります。
- ページ単位のリダイレクト
-
指定ページをリダイレクトする場合の設定例です。
Redirect permanent /old-content.html https://www.sixapart.jp/new-content/
RewriteEngine on RewriteRule ^old-content\.html$ /new-content/ [R=301,L]
URL を変えずに指定先のページ内容を表示(リライト)する場合は以下のように記述します。
RewriteEngine on RewriteRule ^old-content\.html$ /new-content/ [L]
- http:// から https:// へのリダイレクト
-
http:// のアクセスをすべて https:// でのアクセスにリダイレクトする場合の設定例です。前提として、サイトを https:// で公開し、管理画面から対象ドメインの証明書を設定済みである必要があります。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
https:// へのリダイレクトだけでなく、http://sixapart.jp/ から https://www.sixapart.jp/ のように、www なしから www ありの URL にリダイレクトする場合には以下のように記述します。前提として、https:// での公開や証明書の設定に加え、対象ドメインの設定画面(ウェブサーバー設定画面内から対象ドメインを「設定」をクリック)において「www 有無を無視してどちらでもアクセスをできるようにする。」にチェックを入れておく必要があります。
RewriteEngine on RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.sixapart.jp/$1 [R=301,L]
http://www.sixapart.jp/ から https://sixapart.jp/ のように、www ありから www なしの URL にリダイレクトすることも可能です。こちらも前提として、https:// での公開や証明書の設定に加え、対象ドメインの設定画面(ウェブサーバー設定画面内から対象ドメインを「設定」をクリック)において「www 有無を無視してどちらでもアクセスをできるようにする。」にチェックを入れておく必要があります。
RewriteEngine on RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule ^(.*)$ https://sixapart.jp/$1 [R=301,L]
- 独自のエラーページへのリダイレクト
-
エラーページについては、ドメインごとに標準のエラーページが用意されております。(/data/file/error/ [独自ドメイン] /error.html など)
具体的には、エラーコードごとに以下のファイルが参照されます。- 404 / 500 / 502 / 503 / 504 ... error.html
- 401 ... unauthorized.html
- 403 ... forbidden.html
ドメインごと用意されている上記の各ファイルを、お客様にて用意したファイルと差し替えることで独自のエラーページを表示できます。
ただし標準の構成では、404 と 500 でエラーページを分けたり、ディレクトリ単位でエラーページを分けることができません。
そういった場合、.htaccess でエラーページを指定することで、より細かくエラーページを分ける構成を実現できます。ErrorDocument 404 /error404.html ErrorDocument 500 /error500.html ErrorDocument 501 /error501.html
拡張子が .php のファイルに対するエラーは、サービス仕様上、標準のエラーページだけでなく、.htaccess で指定したエラーページも表示されません。例えば、サーバーに存在しない .php ファイルにアクセスすると、エラーページの設定にかかわらず、白地で「File not found.」のメッセージが表示されます。これはサーバー構成上 PHP を php-fpm で実行しており、php-fpm では Apache の設定が適用されないことに起因します。
- ユーザーエージェントによるリダイレクト
-
ユーザーエージェントによる振り分けなども設定することができます。たとえば、ユーザーエージェントによるリダイレクトをおこなう場合は次のように記述します。
RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase /
S4ia / S4ia7 以上のプランをご利用の場合は、static ディレクトリ直下にドメイン名をもとにしたサブディレクトリが作成されています。リダイレクト設定を掛けるディレクトリがどこにあるかは、Movable Type クラウド版の管理画面から親サイト(ウェブサイト)のサイトパスを確認してください。