Пренасочване на несъществуващи страници с низове на заявки с помощта на web.config

Работя върху уебсайт в aspx, където потребителят може да отиде на URL адрес, подобен на „www.website.com/referralname“ или „www.website.com/otherreferralname“ и ще бъде пренасочен към www.website.com/genericform .aspx?referral=referralname

Аз не съм оригиналният дизайнер на сайта и бих искал да добавя възможно най-малко, така че се надявам, че има начин да направя това чрез webconfig, вместо да се налага да добавям страница за пренасочване и да сменям главни букви на всеки възможно реферално име.

Проучих възможността за използване

<customErrors mode="RemoteOnly">
    <error statusCode="404" redirect="~/404.aspx"/>
</customErrors>

Но вече има код в AppCode, който по някакъв начин отменя или измества моя и така или иначе показва само страницата 404 по подразбиране. Всеки съвет е много ценен.

Редактиране: Бях информиран, че .aspx няма да работи с тага customErrors там, така че това може да е част от проблема. Също така бих се радвал на пояснение и по този въпрос. Днес ще науча много!

Редактиране 2: Така че след като направих малко повече проучване, мисля, че терминът за търсене, който би ми бил от полза, е „Маршрутизиране“. Намерих тази MSDN страница, която мисля, че ще ме отведе до моя решение. Ако това проработи за мен, ще публикувам коментар с „отговора“ по-късно.


person Christine    schedule 24.05.2011    source източник
comment
опитахте ли да им включите режима   -  person Ivo    schedule 24.05.2011
comment
Да, все още отива на страницата за грешка 404 на сървъра по подразбиране. Благодаря ви все пак.   -  person Christine    schedule 24.05.2011


Отговори (2)


Можете да търсите IHttpHandler и IHttpHandlerFactory. Използвам ги в моето уики. Имам страници, които завършват на .wiki и не съществуват, но се пренасочват към общи страници, които ги зареждат от база данни. Трябва да имате достъп до IIS сървъра (или да се обадите на вашия интернет доставчик), за да получите несъществуващи файлове чрез разширението, което сте избрали да премине през софтуера Asp.Net, за да се обработват от него.

Има и други начини да правите същите неща.

PS За да използвам моя метод, трябваше да имам пълно доверие на моя сървър, за да го накарам да работи. Убеден съм, че не е необходимо, но не можах да го разбера.

Редактиране:

Това са отметките, които съм запазил:

Сервиране на динамично съдържание с HTTP манипулатори

Как да създадете ASP.NET HTTP манипулатор

person Chuck Savage    schedule 24.05.2011
comment
Преглеждах тази статия за IHttpHandler и IHttpHandlerFactory: връзка Но е малко бързо и свободно, така че ако знаете за някакви по-подробни източници на информация, това също би било полезно. (Съжалявам, че трябваше да редактирам този коментар 3 пъти, все още съм нов!) - person Christine; 24.05.2011
comment
@Christine Добавих някои връзки към публикацията си, които можете да прегледате. - person Chuck Savage; 24.05.2011

Добре, така че нещото, което в крайна сметка работи, е следният код, добавен към областта system.web на папката web.config

<urlMappings enabled ="true">
    <add url="~/referralname" mappedUrl="~/custom/sign-up.aspx?ref=referralname"/>
</urlMappings>

Толкова просто, но толкова неуловимо! Надявам се това да помогне на другите!

person Christine    schedule 25.05.2011