ホームページ作成

Xserverで日本語URLを301リダイレクトさせる方法

Xserverで日本語URLを301リダイレクトさせる方法

ホームページリニューアル後、不在となったページ(404)が出てくるケースは珍しくありませんが、その際の対処法は「変更後のURLへ転送するための処理(301リダイレクト)をする」これが一般的です。
この転送するための処理(301リダイレクト)の詳細については、既にネット上で多く紹介されていますので割愛します。
本記事では、Xserverで日本語URLを301リダイレクトさせる方法を紹介します。

.htaccessファイルを編集する方法は3パターン

Xserverにはサーバーパネル上に「サイト転送設定」という機能がありますが、日本語URLの場合だと、この機能からだと設定はできません。

Xserverリダイレクト設定エラー
出典:エックスサーバー 

Xserverで日本語URLを301リダイレクトさせるには、

  • Xserverサーバーパネル上の「.htaccess編集」から.htaccessファイルを編集する
  • Xserverファイルマネージャから.htaccessファイルを編集する
  • FTP接続から.htaccessファイルを編集(上書き)する

この3パターンになります。

日本語URLを301リダイレクトさせる記述

編集する方法は、どのパターンでも構いませんが、日本語URLを301リダイレクトさせる記述には、少々癖があります。
それはXserverのホームページサーバはApacheと呼ばれるWebサーバソフトで構築されていますが、このApacheは「%」を「x」に自動的に変換するためです。
日本語URLは「URLエンコーディング」という特殊な文字列に変換しておりますが、この状態でそのまま301リダイレクト記述しても、URLにある「%」をApacheが「x」に自動変換し、リダイレクトが失敗します。

日本語URL例

URLエンコーディング前:
https://cocomiru.com/会社概要/
URLエンコーディング後:
https://cocomiru.com/%E4%BC%9A%E7%A4%BE%E6%A6%82%E8%A6%81/

このURL(URLエンコーディング後)だと「%」をApacheが「x」に自動変換し、リダイレクトが失敗

記述方法(エスケープシーケンス)

Apacheに正しい日本語URLを伝えるための記述方法(エスケープシーケンス)はシンプルです。
「%」の部分を「\x」に置き換えるだけで、Apacheは「URLエンコーディング」された文字列を認識するようになります。

たとえば下記の日本語URLをトップページへ移動する場合、

URLエンコーディング前:
https://cocomiru.com/会社概要/
URLエンコーディング後:
https://cocomiru.com/%E4%BC%9A%E7%A4%BE%E6%A6%82%E8%A6%81/

「%」の部分を「\x」に置き換えて、

URLエンコーディング後のURLをApache認識に変換:
\xE4\xBC\x9A\xE7\xA4\xBE\xE6\xA6\x82\xE8\xA6\x81/

301リダイレクト記述を.htaccessファイルの先頭に挿入すれば完了です。

301リダイレクト記述:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^\xE4\xBC\x9A\xE7\xA4\xBE\xE6\xA6\x82\xE8\xA6\x81/ https://cocomiru.com/ [R=301,L]
</IfModule>

ココミルならお手頃価格でホームページを作成

以上がXserverで日本語URLを301リダイレクトさせる方法となります。

なお本記事の執筆は、ホームページ制作者となります。
ココミルが提供するホームページ制作は「集客に繋がります」などの安易な謳い文句を言いません。
まずは事業主の信頼を上げることを目的としたホームページをお手頃価格で提供しております。

また、本記事で取り上げたホームページリニューアル後のトラブルサポートもしておりますので、ご用命の際はお問い合わせくださいませ。
WordPressで作成したホームページの攻撃状況を調査