IIS Isapi Rewrite を使用して次のことをしようとしています...
次のように、seo に適した URL を (静かに) アプリケーションに適した URL に変換する必要があります。
RewriteRule ^/seo-friendly-url/ /test/index.cfm [I,L]
十分に単純です。
ただし、検索エンジン (たとえば) で既にインデックス化されている URL を 301 リダイレクトして、seo に適したバージョンにする必要もあります。そのようです:
RewriteRule ^/test/index.cfm /seo-friendly-url/ [I,R=301]
これらはそれぞれ、単独で正常に機能します。しかし、.ini ファイルに両方を含めると、最終的にブラウザのアドレス バーに /seo-friendly-url/ が表示されますが、404 が表示されます (はい、/test/index.cfm は確実に存在します!)。
循環参照のように見えることはわかっていますが、最初のルールは IIS とアプリケーションの間の URL を書き換えるだけです。リダイレクトがないため、Isapi Rewrite をもう一度実行することはありません。それとも私はそれについて間違っていますか?
Isapi Rewrite でのログ記録を有効にしましたが、次のように表示されます。
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/'
誰でもアイデアはありますか?