Как 301 перенаправить - PullRequest
       12

Как 301 перенаправить

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

Хорошо, мне нужно знать, как сделать перенаправление (куда поставить код или указать настройку). Мы перенаправляем из одного приложения в другое после перемещения приложения.

Так, например, если пользователь переходит на existing.example.com/archive/

мы хотим перенаправить любые запросы, которые содержат old.example.com на new.example.com. Остальное в URL остается прежним. Так, например, /archive/ является одним из примеров, поэтому мы хотели бы перенаправить их в новое местоположение этого приложения, которое new.example.com/archive/

Мне нужно выяснить, как проверить, имеет ли входящий URL-адрес нашего существующего сайта existing.example.com, и, если это так, заменить эту часть только новым new.example.com и оставить все остальное в URL * 1014. *

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

Шаблон:

RedirectURL:

Я не вижу, как в этом интерфейсе я могу сопоставить existing.example.com и что добавить в RedirectURL, потому что я хочу поместить весь URL только с тем, что existing.example.com было изменено на new.example.com для REdirectURL ... и я не вижу, как я это сделаю в IIS 7.

Ответы [ 4 ]

3 голосов
/ 29 ноября 2009

Вот пост, описывающий, как сопоставить один домен и перенаправить на другой со всем остальным в такте с помощью надстройки перезаписи URL IIS7: http://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.aspx

2 голосов
/ 30 ноября 2009

Для такого тривиального перенаправления вам не нужны какие-либо сложные функции переписывания, это базовая функция веб-сервера. В IIS7 теперь вы можете выбрать не устанавливать его (из World Wide Web Services-> Common HTTP Features-> HTTP Redirection), но это было бы необычно для этого.

Измените «Привязки» основного веб-сайта в IIS Manager, чтобы он отвечал только на «Имя хоста»: new.example.com, затем создайте новый веб-сайт, привязанный к имени хоста old.example.com. Для этого сайта выберите параметр «HTTP Redirect» и «Перенаправить запросы в это место назначения»: «1005» с «Кодом состояния»: 301.

В конфигурации XML:

<system.webServer>
    <httpRedirect enabled="true" destination="http://new.example.com/" httpResponseStatus="Permanent" />
</system.webServer>
0 голосов
/ 29 ноября 2009

Для приложений asp.net у меня был хороший опыт с urlrewriting.net , бесплатным компонентом, где вы можете настроить перенаправления в вашем web.config. Он позволяет вводить регулярные выражения и указывать новый URL с обратными ссылками, например, что-то вроде этого (не проверено):

<add name="newdomain" virtualUrl="^http\://old.example.com/(.*)$"
  rewriteUrlParameter="ExcludeFromClientQueryString"
  destinationUrl="http://new.example.com/$1"
  redirect="Domain"
  redirectMode="Permanent"
  ignoreCase="true" /> 

Недостаток: это необходимо настроить для каждого приложения ASP.NET (и вам может понадобиться перенастроить IIS для маршрутизации всего через asp.net, или это может работать только для файлов .aspx). Если вы хотите перенаправить свой домен complete , вам, вероятно, лучше сделать это на уровне IIS, а не на уровне приложений. Для этого, однако, вы можете получить лучшую помощь по http://serverfault.com,, где находятся системные администраторы ...

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

В файле global.asax.cs вашего сайта вы можете перенаправить из BeginRequest следующим образом. Вы можете написать процедуру для замены доменных имен, если это необходимо, на regex или string.replace () или что угодно.

protected void Application_BeginRequest(Object sender, EventArgs e){ 
    ...parse urls... 
    Response.Redirect(myNewPath)
}
...