Настройка перенаправления в файле web.config
Я пытаюсь перенаправить некоторые недружественные URL-адреса с более описательными. Эти URL-адреса заканчиваются на .aspx?cid=3916
, причем последние цифры различаются для каждой страницы имен категорий. Я хочу, чтобы он перенаправлялся на Category/CategoryName/3916
. Я пробовал это в файле web.config
:
<location path="Category.aspx?cid=3916">
<system.webServer>
<httpRedirect enabled="true" destination="http://www.site.com/Category/CategoryName/3916" httpResponseStatus="Permanent" />
</system.webServer>
но поскольку это не закончилось просто расширением, оно не сработало. Есть ли простой способ заставить это работать? Я использую IIS 7.5.
Ответы
Ответ 1
- Откройте файл web.config в каталоге , где находятся старые страницы
-
Затем добавьте код для старого пути местоположения и нового адресата следующим образом:
<configuration>
<location path="services.htm">
<system.webServer>
<httpRedirect enabled="true" destination="http://domain.com/services" httpResponseStatus="Permanent" />
</system.webServer>
</location>
<location path="products.htm">
<system.webServer>
<httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" />
</system.webServer>
</location>
</configuration>
При необходимости вы можете добавить столько путей пути.
Ответ 2
Вероятно, вы захотите посмотреть что-то вроде URL Rewrite, чтобы переписать URL-адреса на более удобные для пользователя, а не простое httpRedirect
. Тогда вы можете сделать правило следующим образом:
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to Category">
<match url="^Category/([_0-9a-z-]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="category.aspx?cid={R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>