К сожалению, я вынужден использовать IIS6 для своего веб-сайта MVC. .net 4.0 добавляет функциональность для имитации глупого взлома для получения URL-адресов без расширения для работы в IIS6. Мой сайт разработан, чтобы воспользоваться возможностью перезаписи URL-адресов для целей SEO. Ключевые URL-адреса, которые клиент хочет использовать, диктуют сложную схему перезаписи URL-адресов.MVC3 .net 4.0 без расширения URL-адресов и isapi_rewrite
Проблемы с внедрением Microsoft для этой функции действительно сводятся к переписыванию URL-адресов и попытка сопоставить шаблон. Я видел различные правила, которые пытаются удалить страшный eurl.axd из URL-адреса, чтобы шаблоны соответствовали друг другу. Я пытался использовать эти правила
RewriteRule^(. ) /eurl.axd/ [а-f0-9] {32} (.) $ $ 1 $ 2 или RewriteRule (. ) eurl.axd/, $ 1
который действительно работает, но он также вводит другие проблемы при наличии вложенных перенаправлений. то есть обработка старых URL-адресов на новые, и т. д.
Что происходит, когда eurl.axd убирается, а при перенаправлении isapi_filter не получает запрос, который приводит к ошибке IIS 404.
Трюк с URL-адресами, я придумал это возможное решение.
RewriteRule^Генераторы/генератор параллельно-потенциал/([^ /] )/([^ /]) $/Генераторы/htmlcontent/генератор параллельно-потенциал/$ 1/$ 2 [NC, L]
он просто захватывает часть eurl.axd и переписывает ее на исполняемый URL с добавлением.
Есть ли лучший способ? У меня есть несколько сотен URL-адресов, которые соответствуют этому шаблону, и было бы неплохо, если бы одно правило обрабатывало их все.