Wordpressのパーマネントリンクを日本語で設定してしまっていたため、英数字に変更すべくリダイレクトを行おうとしております。
Xserverの「サイト転送設定」で行おうとしましたが、URLが日本語のためエラーで先に進めず設定ができない状態です。
日本語以外の英単語のURLであれば、Xserver内のリダイレクト設定にて問題無くできているため、.htaccessの内容を確認してみると、最終行に(既にリダイレクトが有効になっている事を確認済みの)英単語URLの表記がございました。
上記の設定を同じように設定すればリダイレクトできるとの認識で「Redirect permanent 」の記述の後に、(リダイレクト元の)日本語URLをエンコードし、%をバックスラッシュ\に変換した上で同じように記述、その後に新URLを記述いたしましたが、反映されず行き詰まっております。
そもそも上記方法で設定としては合っているとの認識で宜しいでしょうか。
それとも、「サイト転送設定」と、手動での設定は違うのでしょうか。
ご教授いただけますと幸いです。
確認したのが数年前なので、最近のサーバーとは仕様が異なるかもしれませんが。
日本語のURLに対して.htaccessでリダイレクトをかけたい場合、
・日本語のURLの文字コード
・.htaccessの文字コード
・.htaccess内に記載する内容
のそれぞれに配慮する必要があります。
転送させたい日本語のURLはおそらく「UTF-8」だと思いますが、この場合、.htaccessファイルの文字コードをUTF-8にしたうえで、.htaccess内に直接
Redirect permanent /転送させたいファイル名を日本語で記載する 転送先のURL
と記載することで、日本語URLにアクセスしたときに指定のURLに転送させられると思います。
# 以下サンプル Redirect permanent /テスト/ https://exapmle.com/
上記のサンプルの場合、「/テスト/」の部分を「/%E3%83%86%E3%82%B9%E3%83%88/」などにしてもうまく動作しないはずです。
なお、「/テスト/」など日本語ファイル名の部分は日本語で記載する必要があるため、「サイト転送設定」は使えません。
.htaccessファイルを直接編集する必要があります。
詳細にご回答ありがとうございます。
今までコピペで操作を行っていたため、「.htaccess編集」画面に直接入力して設定を行い実行いたしました。
以下の記述が「.htaccess編集」ページの最下部にあるため日本語で直接入力しても問題無い認識です。
編集時の文字コードは「EUC-JP」として保存されます
.htaccess内に日本語などのマルチバイトの文字を使用する場合、保存時の文字コードにご注意ください。
まだリダイレクトの動作になっておりませんが、反映に時間が掛かっている可能性もあるので様子を見て、また後ほどご報告いたします。
今までコピペで操作を行っていたため、「.htaccess編集」画面に直接入力して設定を行い実行いたしました。
以下の記述が「.htaccess編集」ページの最下部にあるため日本語で直接入力しても問題無い認識です。編集時の文字コードは「EUC-JP」として保存されます
.htaccess内に日本語などのマルチバイトの文字を使用する場合、保存時の文字コードにご注意ください。まだリダイレクトの動作になっておりませんが、反映に時間が掛かっている可能性もあるので様子を見て、また後ほどご報告いたします。
この「問題無い認識」とは「サーバーパネルの.htaccess編集機能において、.htaccessの中に日本語が記載できるか」といったニュアンスのことだと思いますが、「サーバーパネルの.htaccess編集機能で.htaccessを編集したとき、.htaccessの文字コードがEUC-JPになる」のであれば、私が回答したなかの
.htaccessファイルの文字コードをUTF-8にしたうえで、
を満たせないので、おそらくksさんの希望に沿う動作はしないと思います。
たとえば「ファイルマネージャ」からファイルを編集するのであれば、保存時の文字コードも指定できるので、ファイルマネージャから.htaccessを編集し、保存時の文字コードを「UTF-8」とするとよいかもしれません。
反映に時間が掛かっている可能性もあるので
.htaccessを修正した場合、基本的に即時反映です。ただし、リダイレクトなどの処理については、ブラウザ(Google Chromeなど)を一度終了し、再度起動させたうえで確認するのが確実です。
モダンブラウザでは、「各ページのリダイレクトの有無などの情報」がブラウザを終了するまでブラウザ内(セッション)にキャッシュされ、.htaccessを修正しても修正内容が反映されていないように見えることがあります。
なお、.htaccessの文字コードと言われても意味がわからない…みたいな話であれば、RedirectionのようなWordPressプラグインで解決するほうが簡単かもしれません。そちらは使ったことがないので、私から説明できる内容はありませんが…。
.htaccessファイルの文字コードをUTF-8にしたうえで、
を満たせないので、おそらくksさんの希望に沿う動作はしないと思います。
たとえば「ファイルマネージャ」からファイルを編集するのであれば、保存時の文字コードも指定できるので、ファイルマネージャから.htaccessを編集し、保存時の文字コードを「UTF-8」とするとよいかもしれません。
戴いたアドバイスのとおり、ファイルマネージャから.htaccessを直接編集し、UTF-8で保存してURLを叩いたところ、元のURLから新URLへリダイレクトされることを確認しました。
.htaccessを修正した場合、基本的に即時反映です。
承知いたしました。
お陰様でしっかりリダイレクトされるようになりました。
この「.htaccess編集」画面の.htaccessのデフォルト保存形式がEUC-JPになっている理由がよくわからないのですが、何かしらのロックなのかもしれないと考えております。
今回、UTF-8で保存するという事がポイントだったという事が(Apacheサーバーで動作するという事なのか、トリガーになるという事なのか、理解できておりませんが)分かりました。
この後同じ追加の作業を60件ほどする必要があったので大変助かりました(この後マニュアル作成が待っています)。
感謝いたします。
お忙しい中ご回答いただきありがとうございました。