301 редирект с IP на домен

В свое время написал такой обстоятельный how2 по организации редиректа с субдомена www на основной домен (или наоборот) и соответственно склейке доменов, и не учел тот момент, что у некоторых хостинг провайдеров есть интересная фича, когда при обращении по IP адресу открывается дефолтный для адреса домен.

То есть ваш сайт представляется в интернете в двух эпостасях: как домен или основное зеркало сайта www.site.ru и как сайт на IP: 123.234.345.456

Чтобы этого избежать, надо также склеить все эти дела с основным доменом, то есть добавить в наш многострадальный файл .htaccess пару строк, естественно памятуя о наличии в нем других операндов:

RewriteCond %{HTTP_HOST} ^123\.234\.345\.456
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

то есть, учитывая накопленный опыт от предыдущих изысканий, склейка IP и основного домена с www, будет выглядеть как:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^site\.ru [OR]
RewriteCond %{HTTP_HOST} ^123\.234\.345\.456
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
</IfModule>

2 Комментариев

  1. Иван сказал:

    Объясните вторую колонку
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteCond %{HTTP_HOST} ^site\.ru [OR]
    RewriteCond %{HTTP_HOST} ^123\.234\.345\.456
    RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

    [Reply]

    anchous Reply:

    вы правда полагаете, что это таблица или надо было подкрепить хоть каким то смыслом ссылку на говноборду?

    [Reply]

Оставить комментарий