Довольно часто вебмастерм необходимо в своей практике использовать перенаправление посетителей сайта с одной страницы на другую или даже с одного сайта на другой. Причин этому может быть достаточно много, так например, как известно, что обычно существуют на хостингах зеркала сайтом, имена которых отличаются приставкой www. Не будем вдаваться в подробности существования подобных «зеркал», но знайте, что это совершенно два разных сайта, которые имеют точную копию другого, поэтому пользователь набирая адрес сайта с www и без, попадают на один и тот же сайт, но они считаются разными сайтами. То же самое происходит и с роботами, которые обходят ваши сайты, они видят два разных сайта, хотя фактически это один. Теперь представьте, что другие вебмастера на своих сайтах делают ссылки на ваш сайт, что нам и хотелось бы как можно больше, с разными названиями вашего сайта, т.е с www или без. В результате ссылочная масса на ваш сайт разделялась бы на две части, что и делают поисковые роботы, а ваша позиция сайта в этом случае так же примерно в два раза ухудшилась, поскольку в настойках своего сайта вы указываете основное «зеркало» сайта как, например, без www. Обычно это указывается в файле robots.txt.
Так вот, чтобы избежать подобных проблем, необходимо использовать редирект с кодом 301, что сообщает поисковым роботом, что страница перенесена «навсегда» по новому адресу. Для сайтов на ASP.NET это можно сделать в конфигурационном файле web.config который расположен в корне вашего сайта. В нем необходимо вставить в секцию <system.webServer> следующий код, который перенаправляет посетителей и роботов с домена с www на домен без www.
<rewrite>
<rules>
<rule name="Redirect from WWW" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Или так:
<rewrite>
<rules>
<rule name="Redirect from WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.myasp.ru$" />
</conditions>
<action type="Redirect" url="http://myasp.ru/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Или так методом простого удаления www в запросе:
<rewrite>
<rules>
<rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{CACHE_URL}" pattern="*://www.*" />
</conditions>
<action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Если вы хотите сделать редирект на другой сайт, тогда используйте такой код:
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url= "http://myasp.ru" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Еще редирект можно настроить непосредственно на своем хостинге, вот например,
на хостинге ispserver.com можно сделать редиректы с кодами 301, 302 и 307.
Кстати очень хороший хостинг с поддержкой ASP.NET, пользуюсь несколько лет.
До этого перепробовал несколько других, где всегда был разочарован, но вот
наконец нашел стабильный, недорогой с поддержкой до 10 баз данных MS SQL
и столько же сайтов. Вообщем рекомендую, можете воспользоваться моим
промокодом 345303344, для получения скидки.
В свое время пробовал размещать свои сайты на разных хостингах, как на бесплатных, так и на платных. Но каждый раз, через некоторое время я уходил от них по разным причинам. Бесплатные, понятно, обладают ограниченным функционалом, да и некоторые со временем либо закрывались, либо становились платными. Но вот на платных хостингах меня не устраивали другие причины. Некоторые был достаточно дорогими, другие не обеспечивали нужный мне функционал, у третьих была неудобная панель управления и другие неудобства. На одном хостинге все сайты были за прокси сервером и все пользователи заходящие на мои сайты имели один статический адрес, а мне необходимо было отслеживать IP-адреса, другие хостинги имели отвратительную поддержку, а на одном хостинге утратили все мои сайты без возможности восстановления.
Вот так я скитался от хостинга к хостингу пока не обнаружил замечательный хостинг ISPServer.ru, на котором в настоящее время размещены все мои сайты. В отличии от предыдущих, хостинг ISPServer.ru имеет довольно демократичные цены, несколько разных тарифов, но одном из которых я имею возможность размещать до 10 сайтов, и столько же баз данных MS MQL Server. Хостинг имеет отличную панель управления и круглосуточную, доброжелательную поддержку, готовую решить оперативно все возникающие проблемы. Ну и самым главным для меня преимуществом на этом хостинге является поддержка не только PHP, но и ASP.NET совместно с базами данных MS SQL Server.
Вообщем рекомендую всем этот хостинг, а для заинтересованных могу дать мою реферальную ссылку ISPServer.ru, вам ничего не убудет, а мне на пиво накапает ;) Можете воспользоваться моим промокодом 345303344, для получения скидки