0

IIS (IIS 7.5、Win2K8 R2) 用の ColdFusion (CF10) カスタム 404 ハンドラーがあり、「わかりやすい URL」をチェックし、見つかった場合は適切なコンテンツを返します。例えば:

http://www.domain.com/user1はhttp://www.domain.com/?user=user1と同じコンテンツを返します

IIS はページの上位 x (1000?) バイトのみを返し、404 エラーも返しているようです。IIS に 200 OK を返すように強制することはできますか? 追加してみました:

<cfheader statusCode="200" statusText="OK">

404 ハンドラーに送信されますが、IIS はまだ 404 エラーをブラウザーに返しています。

フォローアップの質問として、これを行うためのより良い方法はありますか? URL 書き換えモジュールを使用できますか? これは難しいかもしれないと思った。なぜなら、それは URL のパターンにしか一致しないし、フレンドリ URL は存在する可能性のあるフォルダー名にも一致する可能性があるからだ。それが、私の 404 ハンドラーがチェックするものです。

4

1 に答える 1

2

ここでは、いくつかの異なることに触れています。最初の部分である SEO に適した URL については、IIS Rewrite が使用するツールであると言えます。ColdFusion がこれらの処理時間を浪費する必要はありません。IIS Rewrite に処理させ、意味のあるものだけを ColdFusion に渡します。iis rewrite for seo Friendly urls のようなものを Google で検索すると、何千もの例を見つけることができます。

質問の 2 番目の部分では、404 エラーを処理します。200 OKこれらのステータス コードを返したくないことをお勧めします。結局、彼らは404です。代わりに、404 ハンドラー (可能であれば) に301 Moved Permanentlyステータス コードを発行して、新しい (または必要な) ページにリダイレクトさせます。訪問者を正しいページに誘導するだけでなく、検索エンジン ボットを満足させます。訪問者をリダイレクトするページがない場合は、必ず適切な404 Not Foundステータス コードを返します。おそらく、サイトの最も一般的なページへのリンクを、結果の 404 ページに含めます。繰り返しますが、Google はあなたの友人です。例として、404 エラーの 301 リダイレクトなどを検索してください。301 リダイレクトの場合は、新しい場所 (リダイレクト用) も含める必要があることに注意してください。そのようです:

<cfheader statuscode="301" statustext="Moved Permanently">
<cfheader name="Location" value="http://www.newlocation.com">

余談ですが、IIS や ColdFusion で 404 処理をどのように設定しているかについては、実際には言及していませんでした。これらは個別にセットアップすることも、一緒に動作するようにセットアップすることもできます (つまり、IIS 404 ハンドラーが ColdFusion 404 処理テンプレートを指すことができます)。それが私が通常サーバーをセットアップする方法です。これにより、すべての 404 エラーのログ、電子メール、リダイレクトなどを行うことができます。

于 2013-01-22T19:46:51.057 に答える