Настройка редиректов (IIS)
Zeta Web в качестве веб-сервера использует Internet Information Services (IIS).
Настройка редиректов (а также переопределений) происходит через Диспетчер служб IIS (Internet Information Services Manager) с установленными расширениями:
URL Rewrite. Данное расширение обычно устанавливается вместе с веб-сервером IIS.
IIS Manager for Remote Administration. Модуль необходим для удаленного администрирования IIS, в случае отсутствия прямого доступа к диспетчеру служб IIS на хостинге.
Zeta Web поддерживает автоматические редиректы и не требует настройки модуля URL Rewrite в следующих случаях:
изменение url страницы;
изменение url папки каталога;
изменение url номенклатуры и характеристики номенклатуры;
изменение url информационного блока;
изменение url файла / картинки;
при изменении url средствами CMS.
Пример настройки 301 редиректа (видео)
Пример настройки при переходе на Zeta Web с другого решения.
Полезные ссылки
Использование модуля URL Rewrite (документация с официального сайта Microsoft на английском языке)
Создание правил (документация с официального сайта Microsoft на английском языке)
Импорт правил из Apache (документация с официального сайта Microsoft на английском языке)
Статья про настройку правил и использование регулярных выражений
RewriteEngine On # 301 --- http://www.test.com/test/ => http://www.test.com/spiders/ RewriteRule ^test/$ /spiders/? [L,R=301] # 301 --- http://www.test.com/faq.html?faq=13&layout=bob => http://www.test2.com/faqs.html RewriteCond %{HTTP_HOST} ^www\.test\.com$ RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&) RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&) RewriteRule ^faq\.html$ http://www.test2.com/faqs.html? [L,R=301] # 301 --- http://www.test3.com/faq.html?faq=13&layout=bob => bbq.html RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&) RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&) RewriteRule ^faq\.html$ /bbq.html? [L,R=301] # 301 --- text/faq.html?faq=20 => helpdesk/kb.php RewriteCond %{QUERY_STRING} (^|&)faq\=20($|&) RewriteRule ^text/faq\.html$ /helpdesk/kb.php? [L,R=301]
<rewrite> <rules> <!--# 301 - - - http://www.test.com/test/ => http://www.test.com/spiders/--> <rule name="Импортированное правило 1" stopProcessing="true"> <match url="^test/quot; ignoreCase="false" /> <action type="Redirect" redirectType="Permanent" url="/spiders/?" appendQueryString="false" /> </rule> <rule name="Импортированное правило 2" stopProcessing="true"> <match url="^faq\.htmlquot; ignoreCase="false" /> <conditions> <!--# 301 - - - http://www.test.com/faq.html?faq=13&layout=bob => http://www.test2.com/faqs.html--> <add input="{HTTP_HOST}" pattern="^www\.test\.comquot; ignoreCase="false" /> <add input="{QUERY_STRING}" pattern="(^|&)faq\=13($|&)" ignoreCase="false" /> <add input="{QUERY_STRING}" pattern="(^|&)layout\=bob($|&)" ignoreCase="false" /> </conditions> <action type="Redirect" redirectType="Permanent" url="http://www.test2.com/faqs.html?" appendQueryString="false" /> </rule> <rule name="Импортированное правило 3" stopProcessing="true"> <match url="^faq\.htmlquot; ignoreCase="false" /> <conditions> <!--# 301 - - - http://www.test3.com/faq.html?faq=13&layout=bob => bbq.html--> <add input="{QUERY_STRING}" pattern="(^|&)faq\=13($|&)" ignoreCase="false" /> <add input="{QUERY_STRING}" pattern="(^|&)layout\=bob($|&)" ignoreCase="false" /> </conditions> <action type="Redirect" redirectType="Permanent" url="/bbq.html?" appendQueryString="false" /> </rule> <rule name="Импортированное правило 4" stopProcessing="true"> <match url="^text/faq\.htmlquot; ignoreCase="false" /> <conditions> <!--# 301 - - - text/faq.html?faq=20 => helpdesk/kb.php--> <add input="{QUERY_STRING}" pattern="(^|&)faq\=20($|&)" ignoreCase="false" /> </conditions> <action type="Redirect" redirectType="Permanent" url="/helpdesk/kb.php?" appendQueryString="false" /> </rule> </rules> </rewrite>
Поддерживается импорт правил из файла .htaccess, указанных только в формате регулярных выражений. Правило вида "Redirect 301 /some-page/ /some-new-page/" не будет сконвертировано.