301 редирект

12
EM
На сайте с 16.12.2005
Offline
108
2140

Подскажите, пожалуйста такие варианты решения редиректа равнозначно воспримет Google?

1-й вариант, конечно более красивый, но мне нужно перенаправить только при запросе rewrite.html, но чтобы редирект не срабатывал если страница вызаваеться с параметрами. Напр. rewrite.html?action=go&id=1, то редирект не происходил (поэтому 1-й вариант не рулит)?

1:

RewriteEngine on

RewriteBase /

RewriteRule ^rewrite.html new.html [R=301,L]

2:

<?php

if (!$action) {

header("Status: 301 Moved Permanently", false, 301);

header("Location: new.html");

exit();

}

?>

Donald
На сайте с 30.10.2004
Offline
28
#1

Чем это первый вариант красивый? Только тем, что кто-та говорит "мод рерайт - крута"?

ИМХО, 2 вариант разумный и оптимальный, а мод рерайтом надо пользоваться только тогда, когда это необходимо, а не по любому поводу.

Каталог (http://www.eprst.ru), новости (http://news.eprst.ru), чат (http://chat.eprst.ru), открытки (http://postcards.eprst.ru), знакомства (http://lovers.eprst.ru), клубы (http://clubs.eprst.ru), мелодии для сотовых (http://mobile.eprst.ru), email (http://mail.eprst.ru).
M
На сайте с 21.11.2005
Offline
98
msv
#2

Сделайте

RewriteRule ^rewrite.html new.html$ [R=301,L]

и 1-й вариант тоже покатит...

не потому что круто, бывает неудобно лопатить php код, по ситуации короче...

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

header ('HTTP/1.1 301 Moved Permanently');

Умный кросспостинг (http://www.pistonposter.com/) в 14 социалок.
EM
На сайте с 16.12.2005
Offline
108
#3
Чем это первый вариант красивый? Только тем, что кто-та говорит "мод рерайт - крута"?

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

msv:
Сделайте
RewriteRule ^rewrite.html new.html$ [R=301,L]
и 1-й вариант тоже покатит...
не потому что круто, бывает неудобно лопатить php код, по ситуации короче...
не уверен, но кажется пхп хидер должен выглядеть как:
header ('HTTP/1.1 301 Moved Permanently');

Спасибо, щас попробую. В моем случае действительно .htaccess предпочтительнее.

EM
На сайте с 16.12.2005
Offline
108
#4

msv, не работает

RewriteRule ^rewrite.html new.html$ [R=301,L]

тоже самое, еще и добавляет $ к new.html

rewrite.html?is=1 -> new.html$?is=1

X
На сайте с 05.10.2005
Offline
140
#5

RewriteCond %{REQUEST_URI} ^/rewrite.html$ [NC]

RewriteRule new.html [R=301,L]

Юр. услуги для ООО,ИП,СМИ,товарные знаки, Лицензии связи (хостинг,SMS), авторское право Оффшоры,merchant account,карты
EM
На сайте с 16.12.2005
Offline
108
#6

xtremest, RewriteCond не помог. редирект вообще не происходит:(

M
На сайте с 21.11.2005
Offline
98
msv
#7
e_moon:
msv, не работает
RewriteRule ^rewrite.html new.html$ [R=301,L]
тоже самое, еще и добавляет $ к new.html

опечатался.... я имел ввиду:

RewriteRule ^rewrite.html$ new.html

ну чтоб конец строки указать, и отбросить всё что с параметрами....

M
На сайте с 21.11.2005
Offline
98
msv
#8

а ещё можно так, без мод реврайта:

Redirect permanent /rewrite.html http://myserver.com/new.html

Donald
На сайте с 30.10.2004
Offline
28
#9
e_moon:
.htaccess позволяет не обращаться к скрипту лишний раз

Мод рерайт в .htaccess - это как менять масло в двигателе через выхлопную трубу. Лучше писать рерайт рулы сразу в конфиге апача. Впрочем, это тема уже не для новичков, но если кого заинтересует - объясню.

Donald
На сайте с 30.10.2004
Offline
28
#10
e_moon:
msv, не работает
RewriteRule ^rewrite.html new.html$ [R=301,L]

И не будет :)

RewriteRule ^rewrite.html$ /new.html [R=301,L] - примерно так. Но php проще :)

12

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