301 редирект - как правильно прописать?

12
P
На сайте с 23.02.2009
Offline
83
1924

Есть 5 зеркал основного сайта все в индексе на все есть понемногу ссылок.

нужно их всех поклеить на основной домен как правильно прописать редирект в .htaccess

дошел до такого :

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^zerkalo1\.ru$ [NC]

RewriteCond %{HTTP_HOST} ^zerkalo2\.ru$ [NC]

RewriteCond %{HTTP_HOST} ^zerkalo3\.ru$ [NC]

RewriteCond %{HTTP_HOST} ^zerkalo4\.ru$ [NC]

RewriteCond %{HTTP_HOST} ^zerkalo5\.ru$ [NC]

RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]

все правильно или в чемто ошибся?

все зеркала припарковани на один домен как алиасты тоисть юзают одну папку на хосте и одну базу

Мега конверт ADULT трафика (http://bongacash.com/ref?c=262007)
gormarket
На сайте с 29.12.2010
Offline
47
#1

Неправильно.

В приведенном Вами коде все условия RewriteCond объединятся оператором AND (он используется по умолчанию, если не указан OR) и в результате правило RewriteRule никогда не выполнится (не может быть HTTP_HOST одновременно быть равен всем пяти зеркалам).

Нужно так


RewriteEngine On
RewriteCond %{HTTP_HOST} ^zerkalo1\.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^zerkalo2\.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^zerkalo3\.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^zerkalo4\.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^zerkalo5\.ru$ [NC,OR]
RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]

или сделать одно условие


RewriteEngine On
RewriteCond %{HTTP_HOST} ^(zerkalo1|zerkalo3|zerkalo3|zerkalo4|zerkalo5)\.ru$ [NC]
RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
P
На сайте с 23.02.2009
Offline
83
#2

при таком редиректе выдеет ошибку на главном домене!

Moved Permanently

The document has moved here. (под словом "here" ссылка на основной домен, ошибка выдается даже на основном домене)

-------

Все зеркала прикреплены как алиасты и используют туже папаку и базу на хостинге что и основной домен (сайт)

gormarket
На сайте с 29.12.2010
Offline
47
#3
ptraf:
Moved Permanently
The document has moved here. (под словом "here" ссылка на основной домен...

Такое возможно, но не из-за ошибки на сервере, а из-за браузера. Мне известно о таких случаях с оперой. Если в опере отключено автоматическое перенаправление, то на страницах с перенаправлением она будет показывать 302 document has moved here. И переход происходит только после клика по ссылке под этим сообщением. Лечится изменением настроек оперы.

ptraf:
... ошибка выдается даже на основном домене)...

Надеюсь у Вас 5 зеркал и шестой основной домен (он не входит в число "5 зеркал" и не вставлен в одно из правил RewriteCond) :)

А если серьезно, то при наличии еще каких-то строк с операторами после

RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]

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

Alias .....

то нужно как-то их обойти (нужно читать мануалы)

И дополнительно:

есть вариант, когда не нужно перечислять зеркала:


RewriteCond %{HTTP_HOST} !^osnovnoidomen\.ru$ [NC]
RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
P
На сайте с 23.02.2009
Offline
83
#4

Вот весь код .htaccess (ЦМС DLE)

уже все перепробовал все равно не получается ничего? куда этот редирект пихать?

DirectoryIndex index.php

RewriteEngine On

# Редиректы

RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

# Бан лист

RewriteRule ^banlist.html$ index.php?do=banlist [L]

# Сам пост

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L]

RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L]

RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L]

RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L]

RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L]

# За день

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]

RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]

# За весь месяц

RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]

RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]

# Вывод за весь год

RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]

RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]

# вывод отдельному тегу

RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]

RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

# вывод для отдельного юзера

RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]

RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]

RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]

RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]

RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]

RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]

# вывод всех последних новостей

RewriteRule ^lastnews/(/?)+$ index.php?do=lastnews [L]

RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]

# вывод в виде каталога

RewriteRule ^catalog/([^/]*)/rss.xml$ engine/rss.php?catalog=$1 [L]

RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]

RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]

# вывод непрочитанных статей

RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]

RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]

# Статистические страницы

RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L]

# вывод избранных статей

RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]

RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]

RewriteRule ^invites.html$ index.php?do=invite [L]

RewriteRule ^statistics.html$ index.php?do=stats [L]

RewriteRule ^feedback.html$ index.php?do=feedback [L]

RewriteRule ^addnews.html$ index.php?do=addnews [L]

RewriteRule ^rss.xml$ engine/rss.php [L]

RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]

RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^.]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]

RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]

RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]

[Удален]
#5

Капец просто, что вы тут замутили. А на каждом зеркале прописать только одно - главное - не выход?

P
На сайте с 23.02.2009
Offline
83
#6
zagred:
Капец просто, что вы тут замутили. А на каждом зеркале прописать только одно - главное - не выход?

и как это сделать если все сайты используют одну папку на хосте и и одну базу ????????

[Удален]
#7
ptraf:
и как это сделать если все сайты используют одну папку на хосте и и одну базу ????????

Сорри, упустил этот момент. Тогда или к спецам, или разбить сайты на отдельные папки (?)

gormarket
На сайте с 29.12.2010
Offline
47
#8
ptraf:
куда этот редирект пихать?

Однозначно перед началом любых преобразований (в данном случае сразу после строки "RewriteEngine On")

Иначе посетители будут переадресованы на уже преобразованный адрес (index.php с параметрами).

А вот почему не работает, не понимаю...

Приведенные выше строки файла .htaccess никак не должны повлиять на это.

Проблема в чем-то другом.

P
На сайте с 23.02.2009
Offline
83
#9
gormarket:
Однозначно перед началом любых преобразований (в данном случае сразу после строки "RewriteEngine On")

Иначе посетители будут переадресованы на уже преобразованный адрес (index.php с параметрами).

А вот почему не работает, не понимаю...
Приведенные выше строки файла .htaccess никак не должны повлиять на это.
Проблема в чем-то другом.

прописываю сразу после строки RewriteEngine On и зацикливается по кругу даже при заходе на основной домен выдает ошибку

gormarket
На сайте с 29.12.2010
Offline
47
#10

поискал в сети про склейку, например

http://zweroboy.net/domeny/sklejjka-domenov.html

не нашел больших отличий от данного случая, но там все работает

У меня такое подозрение, что у Вас где-то происходит преобразование домена до преобразований в файле .htaccess

И преобразуется домен не в osnovnoidomen.ru, а в zerkalo2.ru (или другое из зеркал). Возможно это будет видно в файле логов сервера access_log. Советую Вам зайти на некую страничку домена osnovnoidomen.ru и после этого посмотреть access_log (какой домен записался там для данного запроса). Если там будет записан другой домен, то нужно либо его делать основным, либо что-то менять в настройках в админке хостинга.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий