Я предполагаю, что вы используете IIS 7.x, и вы установили URL Rewrite 2.0 module.
В web.config файл приложения, добавьте <rewrite>
элемент похож на:
<system.webServer>
<rewrite>
<rules>
<rule name="PDF Rewrite">
<match url="Content/PDF/([\w-]+)\.pdf" />
<action type="Rewrite" url="User/GetPdf/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
([\w-]+)
часть url="Content/PDF/([\w-]+)**\.pdf"
будет "захватывать" имя PDF ("ABC" в вашем пример) без расширения файла. Затем {R:1}
часть <action type="Rewrite" url="User/GetPdf/{R:1}" logRewrittenUrl="true" />
вставляет захваченную строку. Конечный результат является то, что:
http://localhost:9000/Content/PDF/ABC.pdf
становится:
http://localhost:9000/User/GetPDF/ABC
Я предполагаю, что вам нужно будет пройти в имени PDF вашего метода действий, так что если вы реализуете стандартную схему маршрутизации {Controller}/{Action}/{id}
, то id
будет установлен на "ABC".
Лучшее введение в модуль перезаписи URL, который я нашел, на самом деле является URL Rewrite 1.1 configuration reference. Несмотря на то, что это для v.1.1, а не 2.0, он обеспечивает лучший обзор, чем v.2.0 Configuration Reference. Это стоит прочитать с самого начала. В частности, необходимо понять «« Доступ к частям URL-адреса из правила Rewrite Rule ».
Чтобы отладить модуль перезаписи URL-адресов, вы можете использовать «Исправленный запрос запроса IIS 7.x», который, вопреки его имени, может использоваться для отслеживания успешных и неудачных запросов. Этот www.iis.net entry иллюстрирует, как настроить это и объем доступной подробной информации об отладке.
Также обратите внимание, что атрибут logRewrittenUrl="true"
означает, что перезаписанный URL-адрес будет регистрироваться в стандартном журнале IIS вместо исходного URL-адреса. (Он не может использоваться для регистрации как исходного, так и перезаписанного URL-адреса - вы можете получить только тот или иной.)
В качестве примечания стороны я нашел ISAPI_Rewrite действительно полезный. Это позволит вам использовать файлы .htaccess в ISS, не меняя их вообще. больше информации на http://www.helicontech.com/isapi_rewrite/ – Manuel
спасибо дракону. но у меня нет полномочий добавлять новый плагин на мой производственный сервер IIS. На моем серверном сервере IIS установлен модуль URL Rewrite. Мне нужно использовать это. Могу ли я помочь дальше? – shakti
Извините, не знаю, как использовать модуль перезаписи URL в IIS. – Manuel