私は次の操作を行うためにIISのISAPI書き換えを使用しようとしている...Isapi Rewrite 301リダイレクトは404循環参照として解決しますか?
は私がSEOフレンドリーなURLがために(静かに)そうのようなアプリケーションフレンドリーなURLに変換必要があります。
RewriteRule ^/seo-friendly-url/ /test/index.cfm [I,L]
シンプル十分な。
しかし、すでに友好的なバージョンにリダイレクトされるように、検索エンジンでインデックスされたURLも必要です(たとえば、301)。同様に:
RewriteRule ^/test/index.cfm /seo-friendly-url/ [I,R=301]
これらはそれぞれ独立して動作します。しかし、両方の.iniファイルがあると、私は/ seo-friendly-url /ブラウザのアドレスバーに表示されますが、私は404を提供しています。(はい、/test/index.cfmは間違いなく存在します)
私はそれが循環参照のように見えますが、最初のルールはIISとアプリケーションの間のURLのみを書き換えます。リダイレクトはありませんので、Isapi Rewriteをもう一度起動しません。それとも私はそれについて間違っていますか?
私は、ISAPI書き換えのロギングを有効にしていると私は次のことを見ている:
HttpFilterProc SF_NOTIFY_PREPROC_HEADERS
DoRewrites
New Url: '/seo-friendly-url/'
ApplyRules (depth=0)
Rule 1 : 1
Result (length 15): /test/index.cfm
ApplyRules (depth=1)
Rule 1 : -1
Rule 2 : 1
Result (length 18): /seo-friendly-url/
ApplyRules: returning 301
ApplyRules: returning 1
Rewrite Url to: '/seo-friendly-url/'
誰もが任意のアイデアを得ましたか。
ドキュメントによれば、L - "リダイレクトルールは常に最後のルールです"という必要はありません。それでも私はLで試してみましたが、結果は同じです – stubotnik
申し訳ありませんが、これはApacheのmod_rewriteとして誤解されています。 mod_rewrite用の.htaccessファイルにこのようなものがあり、うまく動作します。バグのようなものです。 –