2011-12-14 3 views
0

Мне нужно настроить 301 постоянную переадресацию в web.config приложения ASP.NET, работающего под IIS7.IIS7 и постоянные переадресации с использованием тега location в web.config

<configuration> 
    <location path="services.htm"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" /> 
    </system.webServer> 
    </location> 
    <location path="products.htm"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" /> 
    </system.webServer> 
    </location> 
</configuration> 

Всех страниц Я перенаправляю от перенаправят на главной странице - есть быстрее и/или более простой способ сделать это, как я более 10 страниц мне нужно перенаправить Default.aspx? Я могу указать раздел местоположения для каждой из 10 страниц, но надеялся на более сжатый подход.

ответ

0

Вы можете установить .htm для обработки библиотекой ASP.NET (как и по умолчанию .aspx), а затем просмотреть запросы в Application_BeginRequest в вашем global.ascx, перенаправив, когда это необходимо.

Это немного более активное участие, чем одна или две переадресации в Web.config, но после определенной суммы становится проще.

+0

Если файл .htm/.aspx не существует в файловой системе, Application_BeginRequest в global.ascx не запускается. – amateur

+0

Это будет, если вы не выберите «проверить файл существует» на IIS5/6 или что-то вроде «Invoke handler only only, если запрос сопоставлен с файлом» на IIS7 (не могу вспомнить точные формулировки, но я использовал beginrequest для URI которые не отображаются в файлы, десятки раз). –

+0

можно настроить в web.config? – amateur

0

Альтернативой для ввода ваших страниц по одному в web.config является создание HttpModule. С IIS7 + в интегрированном режиме по умолчанию будет запущен HttpModules для всего содержимого, включая статические файлы.

Чтобы сделать переадресацию в коде, позвоните HttpResponse.RedirectPermanent(string url, bool endResponse) в раннем случае. Для достижения максимальной производительности установите endResponse = true.

0

Я предлагаю вам использовать модуль перезаписи URL-адреса IIS.

Это официальный модуль, который вы можете скачать здесь: http://www.iis.net/download/urlrewrite

Этот модуль похож на швейцарский армейский нож для всех перенаправлением URL или перезаписи потребностей.

Смежные вопросы