頑張らない!でも諦めない!必死にならずにええかげん

Apacheのmod_rewriteで日本語にマッチさせたい(引用)

      2014/11/22

日本語URL(マルチバイトURLエンコード文字)を含むURLを、
Apacheのリダイレクト設定を行う際には.htaccessに対して転送元のURLを指定するのですが、
そのままURLを設定した場合には、エラーとなってうまく転送が行われません。
ここではそんな転送の指定方法をご紹介してくれていたサイトに出逢えましたのでご紹介します。

はじめに

ブログなどを利用していて、最初のうちはわからないままに投稿を行っていたために、
スラッグなどを割り当てることもなく部分的に日本語URLが割り当てられてしまうこともあるでしょう。
カテゴリやタグなどのURLが日本語URLになってしまうことが多いのではないでしょうか。

そうした日本語URLを含むサイトを、
自分で運営するWordPressなどに引っ越す際に困るのがリダイレクト設定の方法です。

うまく転送が行えない例

たとえば以下のようなURLを転送して、レンタルサーバ上のWordPressなどに対して転送設定する場合です。

元URL
「http://domain.com/tag/%E5%80%8B%E5%B1%95

この元URLをエンコードなしに戻すと、以下のようになります。
「http://domain.com/tag/個展

元のURLがどうであれ、
各ページごとにhead内に対してmetaタグによる転送先URLへリフレッシュを指定することで、
日本語を含まないURLに転送をかけることも可能です。

そうした方法を利用される場合には特に問題はないと思います。
ただこの投稿を読まれている方は、そもそも何らかの理由があって読まれていることでしょう ^^;

何らかの理由があって日本語URLを含む形で、
自身のサーバに対してアクセスをさせ、そのアクセスから実際のURLへの転送を行いたい場合には、
理由はとにかく、日本語URLにて.htaccessにマッチさせる必要があります。

単純に考えれば.htaccessに対して以下のように設定をおこなえば転送されそうに思います。
しかし、これではさっぱりうまくいきません。

日本語文字列をApacheに認識されるように変換

こうした日本語URLの転送を行うには、
以下のサイトで変換ツールを公開してくださっている方がおられます。

私はこの方のサイトでうまく設定が行えたので、そのまま読まれればわかると思います。

Apacheのmod_rewriteで日本語にマッチさせたい (抜粋引用)

ところがApacheにはもうひと癖あって、次のような特徴があります。

  • 「%(パーセント)」部分が「\x」に変換される。
  • エンコード文字の大文字の部分が小文字に変換される。

こちらでは日本語文字列をApacheに認識させるための変換ツールを公開してくださっています。
で、変換した文字列が以下のような文字列になります。

日本語文字列単純エンコード前(変換したい文字列は「個展」としています)

日本語文字列変換後

変換の手順は簡単です。まずはサイトにアクセスします。

01_colo-ri.jpサイト

colo-ri.jpサイト

中ほどの変換器エリアに対して変換したい日本語文字列を入力し、
[Apache用URL文字列に変換]をクリックします。

02_エンコード変換器

エンコード変換器

すぐに変換後の文字列が赤で表示されます。

03_変換後文字の表示

変換後文字の表示

このようにして.htaccessに日本語URLを含むマッチングルールも簡単に指定することができます。
最初に例示した例を変換後の文字を利用すると、以下のようになります。

日本語URLはいろいろな場面で難解なエンコード文字列を利用しなければならず、
非常に面倒な作業が増え、まだどうしても敬遠してしまいますね。

日本語ドメインがSEO的にも効果があるなどとも言われますが、テストサイト以外にはちょっとまだ使いにくいですね。

プロモーション(btm)

Google or AdMax Promotion (it)

さいごに

本来ならこうした日本語URLを私は含まないようなスタンスでサイト運営をおこなっているスタンスなのですが、
たまにうっかりそうしたURLで公開してしまう場合もあります。

やってしまったのはもう仕方がないことで、転送する際には日本語URLに対応して転送を行いたいものです。


*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - Apache

  関連記事

eye_apache_fcgi
(mod_fcgid on 2.0.x)windowsでCGIをFastCGIで実行するように設定したかった

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
(lounge mod_fcgid on 2.4.6)windowsでCGIをFastCGIで実行するように設定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
(mod_fastcgi on 2.0.x)windowsでCGIをFastCGIで実行するように設定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_eekagen
Apacheの過去バージョンがダウンロードできるアーカイブ先(メモ)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache
IPアドレスから.htaccess用のネットマスク変換できるサイトが便利

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_php
PHP.iniに設定する設定値はhttpd.confや.htaccessに対しても設定が可能

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_eekagen
mod_fcgidの過去バージョンがダウンロードできるアーカイブ先(メモ)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_apache
ローカル環境へのApache設置

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_apache
[コンピュータに MSVCR110.dllがない]とApacheMonitor.exeを起動して言われた場合

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
(mod_fastcgi on 2.2.x)windowsでCGIをFastCGIで実行するように設定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …