• 締切済み

404エラー時のアドレス取得

ご存知の方がいましたら、教えてください。 あるURL(http://www.hoge.com/search=aaa-aa-aa)があります。 本当は(http://www.hoge.com/?search=aaa-aa-aa)にしたかったのですが、 手違いで'?'が抜けてしまいました。(QRコードの印刷物です) そのままですと、404エラーになってしまい、先に進みません。 どうにかならないかと思いこちらに相談しました。 可能かどうかは別として考えた手段では、 1.404エラー時に特定のページへ移動、URLを取得する 2.取得したURLの内容により、URLを分解し、パラメータとして取得し再度正しいページへ読込み 上記の流れが考えられるのですが、それを実現するにはどのようにしたらいいのでしょうか? htaccess?あたりを使えるのかなと、ぼんやり思っているのですが、詳細な手順が思いつきません。 お手数ですが、どなたかご教授をお願い致します。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

httpd.confを触れるのであればそっち、htaccessでAllowOverrideされているのであればそっちで ErrorDocument 404 /path/to/tokuteinopage/of/relative/path/from/DocumentRoot/error.cgi などと書いて、error.cgiの方で元々アクセスされたURL等を取得して云々すれば良いです。 ただ、私はrewriteに詳しくないのだがmod_rewriteで対応できる案件かも知れないのでそちらも少し調査してみてはどうでしょうか。

p-r-u-m
質問者

お礼

早々のご回答ありがとうございます。 httpd.confは変更が出来ないので、htaccessで試してみたいと思います。 教えていただいたmod_rewriteを少し調べてみましたが、これが使えればいろいろなことが出来そうですね。 cgi関係はあまり詳しくないのですが、調査しながら作業をしてみます。 また、不明な点がありましたら、質問すると思いますが、その際はお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 404エラーのページ作成について

    404エラーのページ作成についてなのですが、もしかするととても簡単なのかもしれませんが検索をして捜しても見つからなかったので質問させてください! 404エラーに関して.htaccessを使用しリダイレクトする方法はたくさん見つかりました。 しかし今回希望しておりますのが、 例えばサイトURLが http://hoge.com/ だったとします。 そして用意したページが error.html とします。 そして http://hoge.com/hogehoge.htmlのように存在しないページにアクセスしたとします。 .httaccessを使用してerror.htmlを使用するとすると自動でリダイレクトされアドレスは http://hoge.com/error.htmlになります。 しかしやりたいのは存在しないページのURL(ここでいいますhttp://hoge.com/hogehoge.html)がアドレスバーに残ったまま表示はerror.htmlの表示をしたいと思います。 実際にTOYOTAのサイトなどがやっています。 上記のやり方を教えていただければと思います。 お手数おかけしますがよろしくお願い致します。

  • URLのパラメータを取得しリンクに渡すには?

    Javascriptで、URLのパラメータを取得し、リンクにパラメータを渡したいです。 例えば、現在のURLが、 http://www.hogehoge.com/hoge.php?page=hoge1だとします。 そのページに、様々なリンクがあるとします。 <リンク例> http://www.hogehoge.com/moge/moge.php http://www.hogehoge.com/boge/boge.php http://www.yahoo.co.jp/auctionxx.html このうち、/moge/以下のページへのリンクにのみ、自動で現在のURLのパラメータを渡したリンクにしたいです。 つまり、 http://www.hogehoge.com/moge/moge.php ↓ http://www.hogehoge.com/moge/moge.php?page=hoge1 というリンクにしたいです。 当然現在のURLにパラメータが存在しない場合は、そのままのリンクになります。 また、他のディレクトリや他のドメインのサイトにはパラメータを渡さず、変更せずにそのままのURLのリンクにしたいです。 <リンク例> http://www.hogehoge.com/moge/moge.php ○変更 http://www.hogehoge.com/boge/boge.php ×変更なし http://www.yahoo.co.jp/auctionxx.html ×変更なし よろしくお願いします。

  • パラメーター付きのURLをリダイレクトしたい

    お世話になります .htaccess でリダイレクトを行いたいのですが、パラメータ付きのURLの為かリダイレクトができません。 .htaccess内の記述↓ redirect 301 /aaa/bbb.php?N=1 http://www.aaa.com/index.html 「?=N1」の部分を取れば問題なくリダイレクトします パラメータ付きのURLはリダイレクト可能でしょうか? よろしくお願いいたします

  • 404ページなどのエラーページのURLについて

    ロリポップにてサイトを作っているのですが、404エラーが起きたときに、 URLがたとえば「hoge.jp/naiyo」という存在しないファイルにアクセスしたときに、私の場合表示されるだけでなく、「hoge.jp/404」というエラーページにURLが移動してしまうのですが、OKWaveなどのサイトを見てみると、URLは移動しません。 どうすればURLをそのままでエラーページを表示できるでしょうか? ちなみにエラーページ表示のhtaccessの内容は 「ErrorDocument 404 http://hoge.jp/404」 と設定しました。

  • mod_rewriteでQUERYパラメータ数操作

    mod_rewriteで、静的化したいのですが、 QUERYパラメータ数が変化する場合には、どうすればよいでしょうか? ■現状 ▼URL /hoge.php?id=1 ▼.htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^hoge([0-9A-Za-z]+)\.html$ hoge.php?id=$1 [L] QUERYパラメータ数が一個のときは、 hoge1.htmlとなり、うまくいくのですが、 下記URLのようにQUERYパラメータがない場合があり、その場合に、エラーとなります(元のリンク自体も書き変えるので)。 /hoge.php QUERYパラメータ数が変化する(ない場合もある)時の.htaccessは、 どのように書けばよいのでしょうか? ・htaccess内で、条件分け可能なのでしょうか?

    • ベストアンサー
    • PHP
  • グローバルIPアドレスについて

    グローバルIPアドレスについて 質問に間違いなどがあるかもしれませんが、 現在、サブドメインを作ってWebサイトを作っております。 ディレクトリを作ってその中で完結させております。 以降、サイト(ディレクトリ)が増える予定です。 http://foo.hoge.com/aaa/ http://foo.hoge.com/bbb/ http://foo.hoge.com/ccc/ そして、現在のドメインではなくて サイト(ディレクトリ)ごとに違うドメインで公開したいと思っております。 多分サブドメインになると思います。 http://foo.hoge.com/aaa/ → http://bar.hogehoge.com こういうことは出来るのでしょうか? 何となく、グローバルIPを追加して DNSの設定をすればよいのかと思っております。 それで実現出来るのでしょうか。 ご存知の方がおりましたらぜひよろしくお願いいたします。

  • fuelphpのpagination

    こんにちは fuelphp初心者です。 fuelphpのpaginationクラスのpagination_url属性にGETパラメーターを付加したいのですが やり方がわからず困っております。 知ってらっしゃる方がおりましたら、ご教授お願いできますでしょうか やりたいことですが、 $config = array( 'pagination_url'=>'search/type/', 'uri_segment'=>2, 'total_items' => 50, 'per_page' => 20, 'num_links'=>5, 'template' => array( のpagination_urlの後ろに「?param1=hoge」を付加させたいのです。 'pagination_url'=>'search/type/'.'?param1=hoge', とやってしまうと作成されたpaginationのURLが http://www.hoge.com/search/type?param1=hoge/2 という感じにGETパラムの後ろにセグメント情報が付加されてしまいます。 理想としては、 http://www.hoge.com/search/type/2?param1=hoge http://www.hoge.com/search/type/3?param1=hoge http://www.hoge.com/search/type/4?param1=hoge という感じになるとうれしいです。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • htaccessで静的URLを動的URLに書き換え

    SEO対策としてcgiで動的に表示されるページを静的なURLで記載したいと思っております。 htaccessを使えば可能なようですが、http://www.aaa.com/tokyo/sibuyaのURLでhttp://www.aaa.com/cgi-bin/test/search.cgi?pref=tokyo&city=sibuyaを実行するにはどのように記載したらよいのでしょうか。 *tokyo,sibuyaの部分には任意の都道府県、都市名を入れたいです

  • サイトリニューアルに伴うURL変更について

    SEOを意識して今まで運営してきたサイトがあるのですが、わけあってサイトをリニューアルすることになりました。 その際、ドメインは変わらないのですが、以下のようにSEO対策していたページのURLを変更しなくてはなりません。 旧URLから新URLへSEOのパワーを引継ぐための施策で考えられる方法をできるだけ多く教えていただけませんでしょうか? ※ちなみにディレクトリ名だけ変わる場合と、.htmlに対してSEOをしていたものをディレクトリで終わるURLにしたものと2パターンについて教えてください。 よろしくお願いいたします。 (1)ディレクトリ名のみ変更 旧URL⇒http://hogehoge.com/hoge1/hoge2/ 新URL⇒http://hogehoge.com/hoge1/aa_hoge2/ (2).htmlのページ⇒ディレクトリで終わるURL 旧URL⇒http://hogehoge.com/hoge1/hoge2/hoge3.html 新URL⇒http://hogehoge.com/hoge1/aa_hoge2/hoge3/

    • ベストアンサー
    • SEO
  • エラー表示

    CGIがエラーを出すと、サーバーが500番エラーを表示しますよね。 そのページを.htaccessのErrorDocumentを使って、自分で定義したものにできたのですが、そのエラーページをCGIにして、どこかにエラーになったページが吐いたエラー出力が入ってないかと思ったのですが、入ってないのでしょうか? -------- #!/usr/bin/perl # hoge.cgi # エラーするCGI die "hoge!"; -------- #!/usr/bin/perl # error.cgi # 500エラーページなCGI print "$_: $ENV{$_}<br>\n" foreach(sort keys %ENV); # ここでもない print foreach(<STDIN>); # ここでもない print foreach(<STDERR>); # ここでもない print ・・・どこかに "hoge!" が入ってないでしょうか? -------- # .htaccess ErrorDocument 500 /error.cgi Apache/1.3.24 Server perl 5.005_03 built for sun4-solaris

    • 締切済み
    • CGI