0


0

だから、https://stackoverflow.com/questions/1346761/url-rewriting-redirects-with-querystring/1346809#1346809から[ここ] …​

ASP.NETでは、あなたはそれにどのように対応するかについての選択肢を持っています - それはCustomErrorsとしてweb.configにあります。 それをオンにして、そして空想の404ページにリダイレクトしてください(多分あなたはすでに行っています)。 404ページでは、リクエストされたクエリ文字列(これは別のクエリ文字列としてカスタムエラーページに渡されます)をチェックして、有効なリダイレクトであるかどうか、データベースに存在するかどうかなどを確認できます。 そこからResponse.Redirect()を実行するだけです。 ___

それから schoonerはこう書いています:

ありがとうございます、私たちは現在404を持っていますが、プロセスでは404として検出されないようにしたいと思います。 可能であれば、otを直接そして別々に処理してください。 _

.and I’d like to know just how bad a practice this is. I don’t expect

私の「可愛い」URLをインターネットに載せるために(ちょうど名刺)、404リダイレクトの役に立つサイトコードのサンプルを持っていますが、本番に行きたくないという問題があります。最初の404をあまりにも真剣に考えるブラウザ。 私が実際に欲しいページにユーザを流すためにcustomErrors / 404を使いたくない理由についてもっと理解するのを手伝ってくれる人はいますか?

2 Answer


1


404エラーハンドラとしてcustomeErrorsを使用する主な問題は、customErrorsがブラウザに404エラーをスローして不正な要求があったことをブラウザに通知するのではなく、エラーのある要求を検出するたびに302を返すことですあなたのcustomErrorsページが何であれ、ページは何にでも再配置されました。 違いを知らない、あるいは気付くことさえしないので、これは大部分のユーザーにとって悪いことではありません。

しばらくの間http://mysite.com/MyAwesomePageAboutStuff.aspxにページがあるというシナリオを考えてみましょう。そしてある日、あなたはもはやそれを必要としないと決め、ファイルを削除します。 Googleまたは他のクローラがすでにそのURLにインデックスを付けていて、それを削除した後に戻った場合は、クローラは404エラーではなく302ステータスコードを受け取ります。エラーページではなく、存在しないリンクを削除します。 今、誰かが検索エンジンによってそのURLを見つけたときはいつでも、彼らはあなたのエラーページに行き着くでしょう。

これはそれほど大きな問題ではありませんが、長期的に見ればユーザーの頭痛の種となる可能性があります。

裏付けとなるデータについては、 こちらをご覧ください


1


ハンドラーとして404を使ってバニティーURLシステムを作成しました。 404は動的にコンテンツをロードしてそれを返すので、私の側に302は必要ありません。 私はPOST / GETとSERVERデータを扱うことができます。

よく働く。 あなたが興味を持っているならTarantulaHawkはSourceForgeの上にいます。