• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessで、404エラーページにユーザーが要求したページのア)

.htaccessで404エラーページにユーザーが要求したページのアドレスを送る方法

このQ&Aのポイント
  • htaccessを使用して、404エラーページにユーザーが要求したページのアドレスを送る方法について教えてください。
  • htaccessファイルを使用して、404エラーページに転送先のページのアドレスを送る方法を知りたいです。
  • htaccessで設定した404エラーページにユーザーが要求したページのアドレスを送る方法を教えてください。

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

  • ベストアンサー
noname#130824
noname#130824
回答No.3

http://testb.com/.htaccessに RedirectMatch ^(.*)$ http://testa.com/index.php$1 http://testb.com/blog/ へのアクセスが http://testa.com/index.php/blog/ に転送されるはず。 index.phpの$_SERVER["PATH_INFO"]に/blog/が入るはず。

noname#179848
質問者

お礼

ありがとうございます。うまくいきました。 最終的に RedirectMatch ^(.*)$ http://testa.com$1 と記述した、.htaccessファイルをhttp://testb.com/において、転送通知ページを介さず直接新URLに飛ぶことにしました。 このたびは本当にありがとうございました。

その他の回答 (2)

noname#116331
noname#116331
回答No.2

404エラーページを使う方法ではありませんが・・・。 存在しないページへのアクセスをhttp://testa.com/index.phpに転送し、 その際にリクエストURIは送れるとおもいます。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://testa.com/index.php?$1 [R=302,L] index.phpの$_SERVER["QUERY_STRING"]で取得できるはずです。

参考URL:
http://xn--u8jxb9ib9150b2px.jp/htaccess/rewritetop.html
noname#179848
質問者

お礼

新サイト運営で、他のことに応用できそうです。ありがとうございました。

noname#179848
質問者

補足

返事が遅くなって申し訳ございません。 先ほど試してみたら500 Internal Server Errorがでて、.htaccessファイルが正しくないようです。 なにか、他に策がございましたら教えてください。 よろしくお願いいたします。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

内部リダイレクトなら REDIRECT_URL などの環境変数が使えますが外部リダイレクトだと無理ではないでしょうか ErrorDocument 404 http://example.com/index.php の場合リクエストしたブラウザにリダイレクトのステータスコード(404ではなく301)とリダイレクト先のURL(http://example.com/index.php)が渡されるだけなのでどうしようもない気がします

noname#179848
質問者

お礼

内部リダイレクトでも、うまくいきませんでしたが、調べていると、他の事も知れてよかったです。 ありがとうございました。

noname#179848
質問者

補足

ありがとうございます。教わったことを参考に以下のようなスクリプトを打ってみました。 .htaccessの中身 ErrorDocument 404 /move.php move.phpの中身 <? //略 $hyoji = '<a href="http://example.com/' . $_SERVER['REDIRECT_URL'] . '">'; echo $hyoji; //略 ?> こうすると、リンク先がhttp://example.com/になってしまい、REDIRECT_URLに入っているはずの内容が表示されません。php側でREDIRECT_URLだけechoやprintで表示させても空欄のままです。REDIRECT_URLを送付するにはhtaccessの中に他に付け加えなければならないことがあるのでしょうか? ちなみに、このファイル群はhttp://example2.com/に設置してある物とし、http://example2.com/testにアクセスした場合の現象とします。 もしくは、PHPがダメなのでしょうか 教えてください よろしくお願いします あと、環境を入力し忘れていたので追記いたします。 Linux Kernel 2.6系 Apache1系(suexec構成) Version 5.2.13 mod_php動作 safe_mode有効 mbstring有効 mbregex有効 mysql有効 mysqli有効(MySQL改良版拡張モジュール) pdo-mysql有効 zlib有効 gd有効 mcrypt有効 exif有効 レンタルサーバーなので使用書きをまるまるコピーしました

関連するQ&A