2016-05-24 1 views
1

Я новичок в .net-экосистеме и моем проекте. Мне была назначена задача создать URL-адрес Vanity следующим образом., чтобы создать URL тщеславия для существующего URL-адреса для проекта asp в IIS 6, не устанавливая ничего

Существующий URL является:

www.example.com.in/Public/Basic-Page.html
тщеславия URL: example.com.in/BasicPage

И ссылки должны работать в конце, указывая на существующий URL. Весь проект в asp, IIS 6. Насколько я понимаю, мы можем внести изменения в web.config, global.asax, чтобы достичь этого. Но что именно мне следует кодировать и где именно я должен внести эти изменения. или Могу ли я использовать в web.config для достижения этого, если да, как я могу это сделать?

ответ

0

От this SO answer в IIS6 нет встроенной перезаписи URL, но вы можете использовать Ionics Isapi Rewrite Filter.

Другим вариантом является использование пользовательских страниц ошибок для направления всех 404 запросов на страницу ASP, где вы затем указываете Server.Transfer на соответствующую страницу. Вы можете сделать это, изменив файл web.config ...

<system.web> 
    ... 
    <customErrors mode="On" redirectMode="ResponseRewrite"> 
     <error statusCode="404" redirect="/404.asp" /> 
    </customErrors> 
    .... 
</system.web> 

Тогда вы можете посмотреть на Request.QueryString, чтобы определить, на какой странице было предложено, и использовать Server.Transfer для перенаправления на нужную страницу. Использование Server.Transfer будет лучше, чем response.Redirect для SEO.

Есть и другие способы сделать это с помощью ASP.NET.

+0

Я не уверен, что настройка web.config будет работать на IIS6, я думаю, вам может потребоваться открыть подключение к удаленному рабочему столу и настроить пользовательскую страницу 404 через диспетчер IIS. Существуют сторонние решения, такие как модуль Ionics Isapi или Helicontech (который не является бесплатным), однако IIS6 связан с Windows 2003, для которого Microsoft закончила поддержку в прошлом году, поэтому, если сайт не был перенесен в IIS7 или 8, но, возможно, вы должны предположить, что это должно быть. С помощью IIS7 и выше вы можете использовать модуль перезаписи URL. – John

+0

Спасибо @ Джон. В нашем проекте уже есть , где обрабатываются 404 ошибки. И IIS 7 или 8 миграции не произойдет в ближайшее время. Поскольку проект hugh и цепочка управления длинная. То же самое касается сторонних решений. Так что в любом случае для продолжения внесения изменений в global.asax, –

+0

Я использую следующий код в global.asax, 'code' <% @ Язык приложения = "VB"%> Но это doenst иметь никакого эффекта, Я также попытался USI ng Application_BeginRequest вместо Application_Start. Я не знаю, поддерживается ли Application_BeginRequest в VB. –

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