Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Подскажите, как лучшим способом сделать редирект |

24.01.2010, 08:24
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Подскажите, как лучшим способом сделать редирект
До этого времени, у меня был форум на
forum.domain.com
сейчас переношу форум на главный домен, и нужно сделать это с минимум негативных последствий.
что бы индексирование в поисковиках восстановилось быстро, что бы пользователям не было проблем вернуться на форум, что бы человек который придёт через старые запросы с поисковика, смог сразу попасть на главную страницу сайта.
а так же функциональность Php/mysql и т.д.
про редиректы ничего не знаю, есть какие то mod_rewrite, htaccess и т.д.
либо проще перенести форум на поддомене создать Index файл с объявлением "мы поднялись уровнем выше - линк"? 
|
|
|

24.01.2010, 12:46
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
1. mod_rewrite
Options +FollowSymLinks
RewriteEngine on
RewriteCond {HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
Дописать в файл .htaccess
2. Apache Redirect
Redirect 301 / http://www.yourdomain.com/
Дописать все в тот же файл .htaccess
3. PHP
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.com/newdir/newpage.htm”);
exit();
http://www.highrankings.com/forum/index.php?showtopic=5644 (c) full article
Последний раз редактировалось Solker; 24.01.2010 в 12:48..
|
|
|

25.01.2010, 22:06
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Большое спасибо!
|
|
|

12.02.2010, 07:22
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Спасибо, Solker
Попробовал вышеприведённый вариант, а так же пересмотрел другие способы в google,
"собрал", то, что работает и редиректит поддомен на основной:
php_flag register_globals off
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^forum.ugex.ru [NC]
RewriteRule ^(.*)$ http://www.ugex.ru/ [L,R=301]
Но теперь проблема в том, когда я пытаюсь добавить ещё один RewriteCond для редиректа на http://www.ugex.ru с сайта http://ugex.ru
Пытался добавить ещё одну строку RewritCond, но вместо forum пишу www, и почему то редирект пропадает вообще, как с http://forum.ugex.ru, так и с http://ugex.ru
P.s. - прочитал что два RewriteCond - допустимо.
|
|
|

13.02.2010, 19:44
|
|
Познающий
Регистрация: 30.12.2009
Сообщений: 38
Провел на форуме: 38124
Репутация:
18
|
|
301 редирект это наилучший метод сохранения ваших позиций в поисковых системах, когда вы переносите страницу или сайт. Код "301" интерпретируется как постоянное перемещение ("moved permanently").
Простой редирект (в файле .htaccess или httpd.conf для Apache):
PHP код:
Redirect 301 / http://www.you.com/new.htm
где:
Redirect 301 - это инструкция, говорящая что страница перемещена
/ - означает, что все с верхнего уровня сайта, включая все подкаталоги, будет переадресовано
http://www.you.com/new.htm - новая страница или сайт (не забывайте поставить последний "/", если переадресация идет на сайт).
Чтобы переадресовать только страницу, сохранив PR старой страницы:
PHP код:
Redirect 301 /old/old.htm http://www.you.com/new.htm
где:
/old/old.htm - путь и имя старой страницы
Аналогичный синтаксис для переадресации сайта:
PHP код:
RedirectPermanent / http://www.you.com/
Пример переадресации каталога:
PHP код:
RedirectPermanent /old-directory http://www.domain.com/new-directory/
Например, зашедших в test переадресуем на www.test.com, остальных на enter.test.com (порядок следования записей важен):
PHP код:
Redirect permanent /test http://www.test.com/
Redirect permanent / http://enter.test.com/
Примечание: для моих целей (изменение домена) хватило первого варианта простого 301 редиректа.
Использование mod_rewrite (прописывается в файле .htaccess):
Ставшая классической задача слияния имена сайта с www и без него, решается так:
PHP код:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite\.com
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=permanent,L] .
или альтернативный синтаксис:
PHP код:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Обозначение [R=301,L] означает: перенаправить клиента и отправить ему код статуса 301 (R=301) и сделать это правило последним (L).
Редирект старого домена на новый:
PHP код:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Например, если необходимо чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в .htaccess:
PHP код:
RewriteEngine on
RewriteBase /
RewriteRule ^rewrite\.htm$ rewrite.html [R=permanent]
Для замены всех .htm файлов .html файлами:
PHP код:
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.html [R=permanent]
Редирект на PHP:
PHP код:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>
Лучше указать HTTP/1.1, так как более старые не поддерживают виртуальный хостинг. Не забудьте, что до вызова header, ничего не должно выводиться (например, echo или print). Поэтому этот код лучше ставить в начало php-скрипта. Более полный вариант php редиректа с сохранением передаваемой страницы и параметров вызова:
PHP код:
<?
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://newdomain.com/'.$ref);
exit();
?>
|
|
|

15.02.2010, 12:38
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Спасибо, suser. Я читал несколько подобных статей. У меня немного другая ситуация. Выше перечисленные примеры - глючат.
|
|
|

15.02.2010, 12:57
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Всё, решил проблему  Не знал, об объединении RewriteCond с помощью [OR].
Помогла эта статья.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|