Задача: необходимо настроить перенаправление домена с префиксом www на домен без www или наоборот.
Среда:
Windows Server 2008, IIS 7.5, URL Rewrite 2.0
Решение:
Url Rewrite — расширение для IIS, с помощью которого можно создавать перенаправления и обрабатывать запросы по схожему принципу работы RewriteRules в Linux.
Скачать Url Rewrite можно, перейдя по этой ссылке.
Итак, для того, чтобы создать перенаправление с http://www.site.com на site.com Вам необходимо выполнить такие действия :
1) Откройте IIS Manager, выберите домен и перейдите в меню «URL Rewrite»
2) Нажмите «Add rules» -> Blank rule с панели.
3) Настройте перенаправление.
В появившемся меню необходимо назвать перенаправление, которое будет выделятся среди остальных. Например, url rewrite.
В выпадающем списке с названием «Using» можно выбрать тип перенаправления — wildcard (предпочтительно) или регулярное (regular).
В поле «»Pattern» (шаблон) необходимо указать *. Это обозначает применения перенаправления для всех определений.
Откройте меню “Conditions” и нажмите “Add”. В меню диалога укажите следующие параметры :
Condition input: {HTTP_HOST}
Check if input string: Matches the Pattern
Pattern: <site.com>
Ignore case: Отмечено.
После вышеуказанных действий, нажмите «Ок». Выражения, которые будут обрабатываться, мы настроили. теперь необходимо указать действие, которое будет применяться для данных выражений. В меню «Action» укажите тип действия — Redirect (перенаправление).
Action Properties — укажите http://www.site.com/{R:0}
{R:0} — сохраняет правильность обработки ссылки с и без www префикса.
Пункт «Append query string» должен быть отмечен. Тип перенаправления (“Redirect Type”) должен быть 301 (Permanent).
Примените данное правило, нажав кнопку «Apply». Созданное правило должно работать корректно.
Для создания Правила можно также использовать web.config.
В секции <system.webServer> конфигурационного файла web.config укажите такое правило :
<rewrite> <rules> <rule name="Url Rewrite" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTP_HOST}" pattern="site.com" /> </conditions> <action type="Redirect" url="http://www.site.com/{R:0}" /> </rule> </rules> </rewrite>
Примечание: site.com — нужно заменить именем Вашего домена.