問題タブ [errordocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
332 参照

php - .htaccess クロスブラウザ

Linux サーバーで .htaccess ファイルを使用して 404 エラーのカスタム エラー ドキュメントを読み込もうとすると、ページは現在のページ URL を取得し、データベースから取得した ID に基づいて別のサイト (データベースから取得したもの) にリダイレクトします。 URL。

現在のエラー ドキュメントは次の場所に保存されます。

/error_docs/ - 既にそこにある HTML ファイル以外のものをアップロードする権限がありません

/HTTPDocs/301redir.php は、.htaccess ファイルがあるサイト ルートです。

私は以下を使用して 301redir.php ページをエラー ドキュメントとしてロードしました。これは FF では機能しますが、他のブラウザーでは機能しません。

ErrorDocument 404 /310redir.php

.htaccess を使用することが、これを変更するための唯一の現実的なオプションです。この問題を回避し、すべてのブラウザーで機能させる方法はありますか?

0 投票する
1 に答える
111 参照

php - PHPスクリプト内で設定されたエラーステータスをさらに処理するためにApacheを使用するにはどうすればよいですか?

私の環境は次のとおりです。apache2handlerとしてインストールされたPHP5.2との共有ホスティング

ErrorDocumentsを構成しました:

ただし、PHPマニュアルの最も単純な例では、Apache2と連携して、準拠したエラー処理を実行する必要はありません。

このコードを修正して指定されたエラーをトリガーし、Apacheに分類させるにはどうすればよいですか?

0 投票する
2 に答える
938 参照

php - ErrorDocumentが.htaccessで機能していないようです

誰かアドバイスしてもらえますか?私のサイトへの訪問者のデフォルトページをindex.phpにしたいのですが、存在しないすべてのページについては、訪問者にerrordoc.phpが表示されます。

だから私はこれを.htaccessに入れました:

残念ながら、エラーを含め、すべてがindex.phpに送られます。友達のグーグルに聞いてみましたが、今日は彼の休日です!

0 投票する
2 に答える
2845 参照

php - 存在しないサブドメインのエラーページを作成する

私のサイトの1つにいくつかのサブドメインがあります。誰かが存在しないサブドメインにアクセスした場合、メインドメインの404ページにリダイレクトしたいと思います。

noexist.example.com-> example.com/404.php?subdomain=noexist(または、HTTP_REFERRERがその情報を提供できる場合はクエリ文字列なし)

cPanelがインストールされたVPSでLAMPを実行しています。WHMを介してドメインのDNSゾーンファイルを編集できます。

0 投票する
2 に答える
5125 参照

apache - ErrorDocument がローカル ファイルで機能しない

Tomcat 6.0.18 で実行している Web アプリに取り組んでおり、リバース プロキシとして Apache 2 を使用しています。これはうまくいきます。また、たとえば、再展開などのためにTomcatをシャットダウンしたときに、Apacheにエラーページを表示させようとしています。ただし、ErrorDocumenthttpd.confのディレクティブはローカルファイルに対してまったく機能していないようです。外部 URL と文字列を試してみましたが、どちらの場合も問題なく動作します。ただし、以下は機能しません。

Oops.html ファイルは htdocs フォルダーにあります。Tomcat が実行されていないが、httpd が実行されているときにアプリにアクセスしようとしたときの httpd からのログ出力を次に示します。

.htaccess ファイルを使用していないことに注意してください。htdocsフォルダ関連の設定に問題があるようです。以下は、htdocs forer に関係する httpd.conf ファイルの一部です。私は Apache を使用するのが初めてなので、これがどれほど関連性があるか、またはもっと投稿する必要があるかどうかはわかりません。

どんな助けでも大歓迎です!

編集:

Tomcat の実行中に、エラー ログに次の行が表示されます。

何かが正しく構成されていませんが、何をどこに持っているかわかりません。これまでの回答に感謝しますが、まだ困惑しています。

0 投票する
1 に答える
579 参照

.htaccess - How to combine ErrorDocument and redirect in htaccess?

I have a very simple 5 page static site.

Instead of a 404, I want to do a 301 redirect to the index page whenever a visitor accesses a page that doesn't exist. I tried something like this:

but that doesn't seem to work. How would I get it to do a 301 redirect to the index page?

0 投票する
5 に答える
4635 参照

php - カスタム404ページ-PHP

このページに表示したいメッセージを除いて、正常に機能するカスタム404ページがあります。

見つからないページのURLを言いたいのですが、代わりに404ページのURLが表示されます。

これが私が持っているものです...

You were looking for <?php echo $_SERVER['REQUEST_URI'] ?>.

htaccessファイルには次の行が含まれています。ErrorDocument 404 /404/

0 投票する
2 に答える
13675 参照

php - ApacheのErrorDocumentディレクティブはリダイレクトしません

Apacheがユーザーにスローする可能性のあるほとんどすべてのエラーをキャッチし、そのユーザーをエラーコントローラーにリダイレクトするために、.htaccessファイルに多数のErrorDocumentディレクティブがあります。これにより、エラーがよりユーザーフレンドリーな方法でレンダリングされます。しかし、それはうまくいかないようです。

たとえば、mysite.com / "" ## $ ## $!のような無効なURLを入力すると、errors.phpファイルへのリダイレクトではなく、常にApacheのデフォルトの403エラーメッセージが表示されます。以下は私が使用しているディレクティブです。それを機能させるために何か他のことをする必要がありますか?(AllowOverride Allが設定されています)

これが絶対カスタムエラー処理にアプローチする間違った方法である場合は、私に知らせてください。正しい方向に微調整していただければ幸いです。

ありがとうございました!

編集:ああ、私がこれについて言及すると思っただけです。リクエストをリダイレクトするための独自のMVC構造を作成しましたが、これはうまく機能します。PHP内から、ユーザーが存在しないURLを要求した場合、私自身の404エラーは問題なく発生します(または私が定義した他のエラー)。つまり、基本的に、mysite.com/!!!!と入力すると URLに挿入すると、機能し、404が返されます。ただし、二重引用符でリクエストを開始すると、デフォルトのApache403エラーが発生します。奇数。また、500エラーはerrors.phpへのリダイレクトにも失敗し、デフォルトのApache 500画面を返すだけです(たとえば、header( "HTTP / 1.0 500 Internal Server Error"); die();)でテストする場合。

編集3:ErrorDocument 200 "message".htaccessファイルに入れようとしましたが、何も起こりませんでした。開いたページはすべて正常に開きます。最悪のシナリオでは、これは無限ループでスタックするはずです。最良のシナリオでは、「メッセージ」を出力する必要があります。それはどちらもしませんでした、それは単にErrorDocumentを無視しました。Apacheのアクセスログには通常の200OKヘッダーが記録されていますが、.htaccessでは完全に無視されていました。

0 投票する
1 に答える
449 参照

ruby-on-rails - Rails以外のURL用のRails404ハンドラー

私は、Ruby on Rails 3.0に移植している、数百の散在するHTMLファイルと非フレームワークPHPファイルを含むサイトを継承しました。

Railsアプリに機能が追加されると、対応するページがドキュメントルートから削除されます。ただし、Googleや外部サイトからこれらへのリンクが頻繁に存在するため、404を返すだけでは受け入れられません。

たとえば、「/ contact.php」のようなURLは、「/ app /contact/」にリダイレクトする必要があります。

この最初のいくつかのケースでは、リダイレクトを実行するためのメタタグを使用して、古い場所に単純なスタブhtmlファイルを作成しました。これは、特に何千もの製品ページを置き換え始めたら、うまく拡張できません。

私の好みは、古いページを削除してから、404ハンドラーにこれらを新しいRailsアプリにディスパッチさせることです。このアプリは、正規表現とデータベースルックアップを使用してURLを調べ、置換ページが何であるかを調べてから、それに301リダイレクトを発行します。新しいページ。

httpd.confに、ディレクティブを配置しました。

「http:// localhost / does-not-exist」を押すと、期待どおりにErrorControllerが呼び出されます。

ただし、コントローラー内で、request、request.headers、またはENVのどこにも元のパス( "/ does-not-exist")が見つかりません-request.request_uri(/ app /を含む)のような可能性のあるメソッドを呼び出していますerror / handle404)、および予期された元のパスを見つけずにrequest.headersとENVを調べます。

Apache access_logは、/ does-not-existのリクエストのみを表示し、/ app / error / handle404を透過的に呼び出したことを示します(リダイレクトを実行したり、2番目のリクエストを作成したりすることはありません)。

元のURLにアクセスするにはどうすればよいですか?

編集:明確にするために、ここに一連のイベントがあります:

  1. ユーザーはhttp://mysite/foo.phpのようなレガシーパスにヒットします。これは、おそらくブログの古いリンクから来ています。
  2. ...しかし、foo.phpはもう存在しません!
  3. これは404であるため、ApacheはErrorDocumentを呼び出します
  4. ディレクティブは「ErrorDocument404/railsapp / error/handle404」です。
  5. RailsはこれをErrorControllerアクション「handle404」にルーティングします-これは正しく機能しています
  6. 問題: ErrorControllerでは、request.request.uri、request.headersは、「/ foo.php」のように、ユーザーが実際にアクセスしようとしたURLに関する手がかりを提供しません。適切な置換ページを提供するには、元のURLを知る必要があります。
0 投票する
2 に答える
1035 参照

php - .htaccess で ErrorDocument 404 を設定すると、jQuery の AJAX 呼び出しでエラーが発生しなくなります

さて、.htaccess を使用して、さまざまなエラー コードの ErrorDocuments を設定しようとしました。次の jQuery AJAX コードが error() 関数を実行しないことを除けば、うまく機能します。

何か提案はありますか?私はその理由を知っていると思います: .htaccess はすべてのエラーを次のように指摘します:

また、 /error.php には次のものがあります。

したがって、index.php に転送すると、おそらく 404 ドキュメント ステータスが失われます。

何を提案しますか?