タグ付けされた質問 「custom-errors」

4
IIS 7.5:Windows認証でカスタム認証エラーページを構成する方法。401ヘッダーの問題
IIS 7.5で実行されているphp Webサイトがあります。サイトはWindows認証によって保護されており、正常に機能します。 ユーザーがサイトにアクセスすると、ユーザー名/パスワードの入力を求められ、認証された場合は通過します。ユーザーが[キャンセル]をクリックするか、パスワードを3回誤入力すると、401エラーページが表示されます。 次に、ログイン方法を説明するカスタムページを表示したいと思います。だから私はエラーページに行き、ステータスコード401.2を選択して、表示したいページを指し示します: 次に、すべてのユーザーに対してカスタムエラーがオンになっていることを確認します。そしてカーブーム!認証は機能しなくなり、ユーザーにはパスワードプロンプトが表示されません。文書によると、Windows認証は最初に401応答を送信することで機能し、次にブラウザーはユーザーにプロバイダーの資格情報を要求し、次に何をするかを決定します。 ここで何が起こるか:IISがページの最初のリクエストで401ヘッダーを送信しようとしますが、web.configが「401でこのページにリダイレクトする」と言うことに気付きます。そして、認証の代わりに、リダイレクトページを提供するだけです。 401、401.1、401.2を交換しようとしましたが、違いはありませんでした。 私は何を間違えていますか?ユーザー認証エラーでカスタムページを表示する方法は? ps web.configは次のとおりです。 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpErrors errorMode="Custom"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="401" subStatusCode="-1" /> <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> <error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" /> </httpErrors> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> …

2
Apache:安全でないポートに送信された安全でないリクエスト…リダイレクトしたい
序文 まず、単純なポート80->ポート443リライトはこれを修正しません。以前のほとんどすべての質問、メールスレッド、フォーラムスレッドなどで、これが最初の無知な応答であり、何度もオウムされたことがわかりました。 第二に:はい、同じポートでHTTPトラフィックとHTTPSトラフィックを処理することはできません。 これはそうではありません。 シナリオ: ポート乗算を介して複数のサイトをホストするApacheサーバー。ポート80は公開サイトとして機能します。ポート443は、そのサイトの安全なバージョンを提供します。 ポート7443、8443、および9443はそれぞれ、SSLで保護された個別のサイトに対応します。 ユーザーがURLを誤って入力した場合、または無効なリンク(http://hostname.tld:7443など)が表示された場合、次のようなばかげたページが表示されます。 サーバーの代わりに、それらをhttps://hostname.tld:7443にリダイレクトするだけです。 私の質問は、Zeusの尻の名の下に、Apacheの動作またはこのエラーメッセージをどのように変更して、ユーザーを自動的にリダイレクトできるかということです。 Apacheは、HTTPS用に構成されていても、明らかに(そのエラーメッセージを表示するために)非httpsリクエストを処理しています。デフォルトでリダイレクトを実行するだけでなく、私には非常に馬鹿げているように見えますが、同意しなくても、なぜ彼らがそうした動作を行ったのか理解できます。だから私の質問です:それを変更できますか?彼らはエラーSOMEWHEREを処理しており、Apacheが実際の構成の宝庫なので、この動作を処理するディレクティブがどこかにあるのは当然のことですが、今のところ数時間いじってみることで見つけることができませんでした。 更新: 私は次のようなさまざまなことを試みました: ErrorDocument 400ディレクティブを使用してStatus 301、Locationヘッダーとヘッダーを送信するだけのCGIおよびPHPスクリプトを取得します。これにより、空白のページになります。ErrorDocument 400 https://hostname.tld:7443単に使用すると、そのリンクがページに表示されます。 mod_rewrite私またはGoogleのほとんどすべての組み合わせを使用すると、サイト全体を指示する包括的な声明を含め、思いつく可能性があります。これらは機能しません。文字通り、彼らは何もしません。Apacheが書き換えディレクティブの処理を試みる前に、上記のエラーを引き起こしているのではないかと思います。 カスタムポートを使用しているため、ポートベースのリダイレクトを使用できません。スクリプトベースのリダイレクトは、http / httpsの不一致のために配信されないため、使用できません。私はこれをバグや意図しない動作にまで踏み込んでいくつもりですが、誰かが非常にカスタムエラーメッセージをそこに入れることを予見していました。彼らがすでに提供している URL は?

1
Nginxのproxy_intercept_errorsディレクティブが正しく機能するために書き換えが必要なのはなぜですか?
以下は、Nginxサーバー構成のサンプルです。「魔法のタリスマン」ロケーションブロックがない場合、プロキシ化されたエラーコンテンツは、カスタマイズされたエラーページではなく、Nginx 404ページを提供します。 proxy_intercept_errorsディレクティブを削除すると、適切なhttpエラーコードヘッダーを含む適切なプロキシエラーページが提供されます。 プロキシされていないエラーページは、魔法のお守りの存在に関係なく適切にレンダリングされます。 正確には何が起こっているのかについてのアイデアはありますか? server { server_name mydomain.com ""; listen 80; root /var/www; error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm; proxy_intercept_errors on; location /proxy/ { proxy_read_timeout 60s; proxy_set_header Host $host; proxy_pass http://myservers; } location /test404/ { return 404; } location /admin/ { # this …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.