Перенаправление несуществующих страниц со строками запроса с помощью web.config

Я работаю над веб-сайтом в aspx, где пользователь может перейти по URL-адресу, похожему на «www.website.com/referralname» или «www.website.com/otherreferralname», и будет перенаправлен на www.website.com/genericform. .aspx?referral=имя реферала

Я не первоначальный дизайнер сайта, и я хотел бы добавить как можно меньше, поэтому я надеюсь, что есть способ сделать это через веб-конфигурацию, вместо того, чтобы добавлять страницу перенаправления и переключать регистр каждый раз. возможное реферальное имя.

Я изучил возможность использования

<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

Как создать обработчик HTTP ASP.NET

person Chuck Savage    schedule 24.05.2011
comment
Я просматривал эту статью об IHttpHandler и IHttpHandlerFactory: link Но это немного быстро и свободно, поэтому, если вы знаете какие-либо источники более подробной информации, это также будет полезно. (Извините, что мне пришлось редактировать этот комментарий 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