Перенаправление несуществующих страниц со строками запроса с помощью web.config - PullRequest
3 голосов
/ 24 мая 2011

Я работаю над сайтом в формате 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 , которая, я думаю, приведет меня к моему решению.Если мне это удастся, я оставлю комментарий с ответом позже.

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Вы можете искать IHttpHandler и IHttpHandlerFactory.Я использую их в своей вики.У меня есть страницы, которые заканчиваются на .wiki и не существуют, но перенаправляются на общие страницы, которые загружают их из базы данных.У вас должен быть доступ к серверу IIS (или к вашему интернет-провайдеру), чтобы получить несуществующие файлы по расширению, которое вы по-прежнему выбираете для передачи программному обеспечению Asp.Net, чтобы обрабатывать его.другие способы сделать то же самое.

PS Чтобы использовать мой метод, мне нужно было иметь полное доверие на моем сервере, чтобы заставить его работать.Я убежден, что в этом нет необходимости, но я не смог понять.

Редактировать:

Это закладки, которые я сохранил:

Обслуживание динамического содержимого с помощью обработчиков HTTP

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

1 голос
/ 25 мая 2011

Хорошо, так что в конечном итоге все заработало: следующий код добавлен в область system.web папки web.config

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

Так просто, но так неуловимо! Я надеюсь, что это помогает другим!

...