редирект в .htaccess

12
V
На сайте с 13.06.2011
Offline
26
964

Здравствуйте.

Подскажите пожалуйста.

Переносим сайт на новый движок.

Там есть такой .htaccess

----------------------------------

RewriteEngine On

RewriteRule ^.htaccess$ - [F]

RewriteBase /

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+).html$ index.php?category=$1&content=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]+).html$ index.php?content=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?category=$1&content=index [L]

----------------------------------

Мне надо старые адреса вида http://site.ru/7/view_post.php?id=18

поштучно перенаправить на статичные адреса.

Но дело в том, что эти статичные адреса формируются этим самым .htaccess из файлов

nazvanie-faila.inc.php

Подскажите пожалуйста, как это можно сделать?

siv1987
На сайте с 02.04.2009
Offline
427
#1

Либо построчно прописать каждый редирект в htaccess, либо делать редирект не через htaccess, а на уровне скрипта где есть шаблон чпу. Последнее предпочтительнее.

V
На сайте с 13.06.2011
Offline
26
#2

Благодарю за ответ.

Вроде настроил с помошью строчки

RewriteCond %{QUERY_STRING} id=10

RewriteRule ^(.*)$ /nazvanie.html? [R=301,L]

Но теперь, на сайт можно зайти еще и по адресу

http://site.ru/nazvanie&content=index

Это ведь дубли получаются. Не подскажете, где я ошибся?

siv1987
На сайте с 02.04.2009
Offline
427
#3

Все правильно, ни где не ошиблись.

Закройте дубли в роботс

Disallow: /index.php?category=

Disallow: /index.php?content=

Или можете попробовать добавить редиект, вставив после RewriteEngine On (сразу за!) следующее:

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^category=([\w-]+)&content=index$

RewriteRule ^index\.php /%1/? [R=301,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^category=([\w-]+)&content=([\w-]+)

RewriteRule ^index\.php /%1/%2.html? [R=301,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^content=([\w-]+)

RewriteRule ^index\.php /%1.html? [R=301,L]

V
На сайте с 13.06.2011
Offline
26
#4
siv1987:

Закройте дубли в роботс
Disallow: /index.php?category=
Disallow: /index.php?content=

Благодарю за ответ.

Скажите, в robots добавлять именно так, как вы написали? До /index.php?category= /index.php?content= или после ничего добавлять не надо?

siv1987
На сайте с 02.04.2009
Offline
427
#5
valueff:
Скажите, в robots добавлять именно так, как вы написали?

Да. Но если будете ставить редирект, в роботс лучше пока не запрещать чтобы не препятствовать боту быстрее склеить ссылки.

V
На сайте с 13.06.2011
Offline
26
#6

Понял. Благодарю за ответы.

V
На сайте с 13.06.2011
Offline
26
#7

Будьте добры, подскажите пожалуйста ещё.

Как, в дополнение к вышесказанному, сделать ещё и такой редирект?

/nazvanie-stranici/ -> /nazvanie-stranici.html

С учетом того, что /nazvanie-stranici.html формируются этим самым .htaccess из файлов nazvanie-stranici.inc.php

siv1987
На сайте с 02.04.2009
Offline
427
#8

RewriteRule ^([^.]+)/$ /$1.html [R=301,L]

V
На сайте с 13.06.2011
Offline
26
#9

siv1987, благодарю Вас за ответы.

V
На сайте с 13.06.2011
Offline
26
#10

Ссылки вроде склеились.

В вебмастере Яндекса есть несколько дублей страниц вида:

http://site.ru/nazvanie.html?content=***

http://site.ru/nazvanie1.html?category=***

Вы мне рекомендовали закрыть их в роботс так:

Disallow: /index.php?category=

Disallow: /index.php?content=

Все верно? Такой текст должен быть?

И еще вопрос: во всех секциях robots размещать текст?

Спасибо.

12

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