Я пытаюсь использовать 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 определенно существует!)
Я знаю, что это похоже на циклическую ссылку, но первое правило переписывает только URL между IIS и приложением - перенаправления нет, поэтому я не обращаюсь к 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/'
У кого-нибудь есть идеи?