人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://q.hatena.ne.jp/1247206070の質問の続きです。

前回の質問で「日本語URLを利用するときはURLエンコードを利用する」と教えていただき、
ほとんどのURLは解決できたのですが

■タイトルが「漫/画太郎」の場合
http://xxx.jp/漫/画太郎
↑一つ下の階層に認識される

■タイトルが「漫&画太郎」の場合
http://xxx.jp/漫&画太郎
↑「漫」がタイトルとして認識され「&画太郎」はパラメータと判断される

とタイトル名をうまく取得できません。

wikipediaでは

■/.J
http://ja.wikipedia.org/wiki//.J

■&(シングル)
http://ja.wikipedia.org/wiki/%26_(シングル)

のように認識されているようなのですが、このようにするには
どうすればよいのでしょうか?

お願い致します。

●質問者: gelgelgel
●カテゴリ:インターネット ウェブ制作
✍キーワード:/.J URL Wikipedia ほと エンコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●42ポイント

どのような環境でURLエンコードを行おうとしているのか分かりませんが、前回回答でご紹介した「PHPでURLエンコードを行う」のサンプル・プログラムを実行していただければ分かるように、下記のような変換が行われます。(いずれもANK文字のため、UTF-8/EUC-JPといった日本語文字コードには関係なく一意に変換されます)


文字 URLエンコード
& アンパサンド %26
? クエスチョン %3F
半角スペース +
/ スラッシュ %2F
\ バックスラッシュ %5C

このため、ご質問にあるような事態は発生しません。

◎質問者からの返答

ご回答ありがとうございます。

言葉足らずだったかもしれませんが変換自体はうまくいっています。

少し気にかかって試してみたのですがmod_rewriteを使用しているのが原因の気がします。

元のURL

http://xxx.jp/detail.php?title=漫%26画太郎

では正常に表示されるのですがmod_writeで生成した

http://xxx.jp/detail/漫%26画太郎

ではうまく表示されません。もちろん「&」や「/」がない場合は

正常に表示されます。

分かりましたらご回答いただけると嬉しく思います。


2 ● pahoo
●28ポイント ベストアンサー

mod_writeで生成した

http://xxx.jp/detail/漫%26画太郎

ではうまく表示されません。

まず確認ですが、下記のようにスラッシュ以下をすべてURLエンコードしたもの(下記はUTF-8ベースです)を mod_rewite で置換するように指定していますか?

http://xxx.jp/detail/%E6%BC%AB%2526%E7%94%BB%E5%A4%AA%E9%83%8E
  ↓
http://xxx.jp/detail.php?title=%E6%BC%AB%2526%E7%94%BB%E5%A4%AA%E9%83%8E

次に、Apache 1.3系をご利用ということなので、スラッシュ(%2F)の扱いに注意が必要です。詳しくは「mod_rewriteでの%2F問題」をご覧ください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ