Альтернатива Response.Rirect для создания поддоменов. - PullRequest
0 голосов
/ 28 ноября 2009

У меня есть сайт, который размещен в среде общего хостинга. Они используют настройку поддомена с подстановочными знаками и предлагают использовать Response.Redirect для достижения иллюзии поддомена.

Есть ли способ сделать это так, чтобы «переключение» происходило на сервере, а не возвращалось обратно в браузер?

Server.Transfer работает только если я перехожу на реальный ресурс. Так что перенаправление с sub1.mydomain.com на www.mydomain.com/public/ не работает. Вместо этого мне придется перенаправить на www.mydomain.com/public/mypage.aspx, что я не хочу делать.

1 Ответ

0 голосов
/ 28 ноября 2009

Чтобы обеспечить «переключение» на сервере, вы можете создать простой HTTP-модуль, который будет перехватывать каждый запрос, проверять запрошенный URL-адрес и затем пересылать их по мере необходимости. Все, что должен сделать ваш модуль, это обработать событие OnBeginRequest и затем переслать запрос. Таким образом, вы можете иметь неограниченное количество поддоменов.

Также может потребоваться добавить пустой заголовок хоста, чтобы любые запросы на субдомены, не перечисленные в списке, перенаправлялись на соответствующий веб-сайт по умолчанию

Если вы не знакомы с ними, модули очень просты в создании и работе с ними. Вот ссылка на очень похожую реализацию Брендана Томпкинса: http://codebetter.com/blogs/brendan.tompkins/archive/2006/06/27/146875.aspx

Вы также можете выполнить некоторую перезапись URL в модуле, если вам нужно определенное поведение URL-адреса.

...