• ベストアンサー

Locationの文字化け

HTTP_REFERERで取得した情報によって表示するページを振り分けたいのですが、 print "Location: url\n\n";で表示されるページがNN4.7で文字化けしてしまいます。 解決方法があれば教えていただけますか? お願いします。

  • CGI
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • nak205
  • ベストアンサー率60% (40/66)
回答No.3

実はいま別件で知り合いから教わったんですが、 print "Status: 301 Mover Permanently\n"; print "Location: url\n\n"; とすれば解決出きるそうです。

harisun
質問者

お礼

試してみたところ、ばっちりでした。 どうも有り難うございました。

その他の回答 (2)

  • TimWood
  • ベストアンサー率50% (2/4)
回答No.2

ちなみに追加。 確かに<META>タグはWebサーバが読むためのものですが、 最近のブラウザはブラウザ側でも読んでくれます。

harisun
質問者

お礼

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

noname#205142
noname#205142
回答No.1

WebサーバはApacheですよね? Locationによって表示されるページで、きちんとCharsetを出力していない場合このようなことがおきます。 CGIであれば、Content-TypeにCharsetを付加してヘッダを出力すれば解決します。  print "Content-Type: text/html; Charset=EUC-JP\n\n"; htmlなどであれば、httpd.confのDirectoryタグもしくは.htaccessでデフォルトのcharsetを指定すれば解決します。  AddDefaultCharset EUC-JP もしリダイレクト先のコンテンツが第三者の管理下に有る場合は知りません。本来はContent-Typeでcharsetを指定するべきことになっていますので。  http://www.csl.sony.co.jp/cgi-bin/hyperrfc?2616 # 「<META>タグで漢字コードを指定する」とかって話は、 # 結局のところContent-TypeヘッダにCharsetオプションを付加するための壱手段です。 # ヘッダが制御できる場合は制御しちゃった方が確実ってもんです。

参考URL:
http://httpd.apache.org/docs/mod/core.html#adddefaultcharset
harisun
質問者

お礼

ご回答ありがとうございます。 >WebサーバはApacheですよね? はい、そうです。 >もしリダイレクト先のコンテンツが第三者の管理下に有る場合は知りません 実はそういう状況なのです。でもリダイレクト先のページには、 <META>でCharset=Shift_JISが指定してあります。 NN4.7で再読み込みすると文字化けが直るのですが、最初の表示が化けます。 サーバの設定をいじれなければしょうがない事なのでしょうか?

関連するQ&A

  • header Locationに関するエラー

    こんにちわ。質問があります。 以下のコードに問題はありますか? "http://xxx.xxx.xxx.html"(仮名)というURLからアクセスした場合は リンク元を表示し、その他からのアクセスの場合は、google.co.jpに飛ぶというプログラムです。 header:Locationの使い方がおかしいらしく、エラーとなってしまいます。 どこに問題がありますでしょうか?ご教示いただけますと大変助かります。 どうぞよろしくお願い申し上げます。 ------------------------------------------------------------- <?php $referer=$_SERVER['HTTP_REFERER']; echo 'referer = '; echo $referer; echo '<br>'; if($referer == "http://xxx.xxx.xxx.html") { echo 'from '; echo $referer; } else { $url="http://www.google.co.jp/"; header("Location: $url"); exit; } ?>

    • ベストアンサー
    • PHP
  • ホームページ 検索の文字化け

    googleのホームページ検索をすると(このページのスクリプトでエラが発生しました。)ライン26 文字41 エラー 'Y'がありません コード0 と表示されて検索画面が文字化けで表示されます。かまわずに文字化けした項目をどれかクリックすると正常なホームページが文字化けせずに表示されます。どなたか対処方法教えてください。   エラー表示のURL はHttp//www.google.co.jp/search と表示あり。

  • PerlのLocation:が文字として出力されてしまいます

    Perl/CGI内でボタンを配置し、そのボタンを押すとサブルーチンにあるprint "Location: $戻り先\n\n";でジャンプするようにしたいのですが、 「Content-type: text/html」より後にLocationを使うとジャンプせずに画面に文字として「Location: $戻り先」と表示されてしまいます。 このような場合どうすればよいのでしょうか?

    • ベストアンサー
    • CGI
  • header(Location)で相対URL指定方法?

    お世話になります。 $_SERVER['HTTP_REFERER'] を使って得た値からheader(Location~) でURLを指定したいのですが 調べてみたら、絶対URL指定以外は 駄目みたいなのですが。 色々調べてみたのですが イマイチ、ピンときません。 あまり難しくない方法はないのでしょうか? 他の指定方法とかはないのでしょか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 文字化け

    昨日から、いきなり文字化けするようになってしまいました。 自分でも何故だか全然わかりません; それに、URLを押してそのページを開こうとすると、「ページが表示されました」とちゃんと左下に出てるのに、真っ白で、何も文字が出てこないんです。 これは、ウイルスでしょうか? 誰か分かる方いらっしゃいませんか?

  • 検索エンジンからのリクエストの検索ワードを抽出したいのですが

    タイトルにあるように、検索エンジンからページ(サイト)に来た際、検索キーワードを取り出して検索ワードによって見せるページをかえたいのです。 URLからクエリは取り出したのですが、キーワードのみを取り出すことができなくて悩んでいます・・・ 正規表現を使わずにキーワードを取り出せないでしょうか?(正規表現を使ってはならないといわれておりますので汗) お助けくださるとありがたいです^^ よろしくお願いします! <?php サーバ変数でURLを取得 if($_SERVER['HTTP_REFERER']) { $url = parse_url($_SERVER['HTTP_REFERER']); } else { $url = print'URLの取得に失敗しました'; } $url = $url['query']; クエリが文字化けするのでデコードなどの処理 $rst_url = urldecode($url); $str_url = mb_convert_encoding($rst_url,'EUC-JP','UTF-8'); $str = urldecode($str_url); print $str; ?>

    • ベストアンサー
    • PHP
  • REFERERの取得

    a.php <INPUT type="button" onClick="location.href='b.php'"> としてボタンをクリックしたらb.phpに飛ぶようにして b.php $referer = $_SERVER[’HTTP_REFERER’]; print $referer; としたら、 何も表示されないので、REFERERが取得できていないということなんでしょうか?それと、どういう場合にREFERERは取得できないんでしょうか?

    • ベストアンサー
    • PHP
  • PHP3の文字化け

    PHP3について質問です。 php4でprint "<td>$value</td>\n";するとうまく表示されるのですが、php-3.0.18-i18n-ja-3だと文字化けしてしまいます。"輔"や"子"などです。解決策を探しています。お願いします。

    • 締切済み
    • PHP
  • Locationの部分をいじる

    携帯サイトを作っています。 パスワード認証(1.cgi)→端末振り分け(2.cgi)という流れにしたいのですが、vodaとPCは問題なく各々の目的のページに飛べるのですが、i-modeがエラーがでてしまうようです。 振り分け先に指定しているURLなんかはちゃんと合っています。 どうも、i-modeでLocationが機能しないのが原因ではないかと思うのですが、cgiのいじり方が分かりません。 サポートBBSによると1.cgiの以下の部分を変えるそうなのですが if ($pass eq $password) { print "Location: $cgi\n\n"; exit; } の部分のLocationが機能しないのだと思います。 秘密cgiで表示する最初のページを、この部分で読み込み表示する方法や、この部分にcgiへのリンクを張る方法をとられてはいかがでしょう? ということで、具体的にどうしたらよいのか分かりません。(サポートBBSが実質停止状態なので・・・) わかる方いらしたら、ご教授いただければと思います。

    • 締切済み
    • CGI
  • Dreamweaverでの文字化けについて

    Adobe Dreamweaverでファイルを編集していると、日本語が文字化けしてしまいます。 Dwで作成されたhtmlページが文字化けしている、既存のファイルをDwで開くと文字化けしている、などの問題の解決方法はあったのですが、編集中のものが文字化けするという問題の解決方法が見つからないんです。 画像を見ていただくとわかると思いますが、メニューなどの表示に問題はありません。 エンコードを変更したりもしてみましたが解決出来ませんでした。 よろしければお知恵を拝借させていただきたいです。