Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php 301 redirect


Автор: Dima85 5.7.2011, 23:38
Помогите пожалуйста сделать php 301 редирект.
Тоесть если человек зашел на vasja.ru его перенаправляет на www.vasja.ru

или же vasja.ru/?test перенаправляет на www.vasja.ru/?test


index.php
Код

if (домен без www) {
так же нужно сделать условие на "?"
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.vajsa.ru/'.$ref);
exit();
}

Автор: Gold Dragon 6.7.2011, 07:40
Dima85, обычно наоборот избавляются от www с точки зрения поисковой оптимизации smile

а вообще можно попробовать что-то такое
Код

if(substr($_SERVER['HTTP_HOST'], 0, 4) != 'www.'){
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://"."www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    exit();
}


Добавлено через 1 минуту и 1 секунду
а ещё лучше такие вещи закладывать в .htaccess

Автор: The_Aleksey 6.7.2011, 12:59
.htaccess
Код

RewriteEngine on
RewriteCond %{HTTP_HOST} ^vajsa\.ru
RewriteRule ^(.*)$ http://www.vajsa.ru/$1 [R=permanent,L]

Автор: bars80080 6.7.2011, 13:43
The_Aleksey, а htaccess`ом можно выправить такие адреса:

site.ru
site.ru////
site.ru/page
site.ru/page///
site.ru/page?p=v
site.ru///page//?p=v&c=k

на 

site.ru/
site.ru/
site.ru/page/
site.ru/page/
site.ru/page/?p=v
site.ru/page/?p=v&c=k

?

Автор: The_Aleksey 7.7.2011, 13:44
К сожалению не настолько силен в .htaccess, знаю только стандартные преобразованияsmile

Автор: ivashka 10.7.2011, 15:53
Цитата(The_Aleksey @ 7.7.2011,  13:44)
К сожалению не настолько силен в .htaccess, знаю только стандартные преобразованияsmile

Вам же дали готовое решение, зачем запускать 2 раза php?
.htaccess исполняется раньше чем пхп, и работать редирект там будет на порядок быстрее...

Нагрузку нужно всегда учитывать в своих преложениях.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)