Я использую IIS7.5 и модуль перезаписи URL.
Я следовал этим пошаговым инструкциям, чтобы включить удобные для пользователя URL:
Шаблоны правил для модуля перезаписи URL - Удобный для пользователя URL - шаблон правила
Если я введу URL http://domain.com/default/
вместо http://domain.com/default.aspx
, сайт выдаст 404: file not found error
.
Вот мои правила переписывания:
<rewrite>
<rules>
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^demourl\.dev\.asenetechdev1\.com/default\.aspx$" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
</conditions>
<action type="Redirect" url="demourl.dev.asenetechdev1.com/default"
appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^demourl\.dev\.asenetechdev1\.com/default$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="false" />
</conditions>
<action type="Rewrite" url="demourl.dev.asenetechdev1.com/default.aspx" />
</rule>
</rules>
<outboundRules>
<rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img"
pattern="^(.*)demourl\.dev\.asenetechdev1\.com/default\.aspx$" />
<action type="Rewrite" value="{R:1}/ demourl.dev.asenetechdev1.com/default" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
Я также пытался использовать Intelligencia.UrlRewriter с этим. Но я могу генерировать дружественные URL-адреса как на локальном, так и на сервере, но мне нужен URL-адрес без расширения, который работает нормально на моем локальном сервере, но не на реальном сервере.