чпу + htaccess = левые страницы в индексе :(

A2
На сайте с 21.09.2010
Offline
99
386

в htaccess есть правило -

(1) RewriteRule ^(.*)_(\d+)/?$ $1?page=$2 [L]

в результате страницы на сайте имеют вид

site.ru/razdel_1

site.ru/razdel_2

site.ru/razdel_3

Но блин в индексе завелись страницы-дубли вида

site.ru/razdel?page=1

site.ru/razdel?page=2

И действительно, по этим урлам открываются страницы.

а если я беру и запрещаю нафиг эти страницы в htaccess:

RewriteCond %{QUERY_STRING} ^page=(\d+)$

RewriteRule ^(.*)$ /404.php [R,L]

то естественно у меня перестает это мое (1) основное правило и все страницы редиректятся на 404. голову сломал, помогите. Надо видимо объяснить, что если это первый запрос клиента с ?page, то редиректить на 404, а если это уже наш редирект, то ниче не трогать...

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

Добавить перед вашим реврайтом

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^page=(\d+)$

RewriteRule ^(.+)(?:_\d+)?/?$ /$1_%1? [R=301,L]

или

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^page=(\d+)$

RewriteRule ^(.*)$ /404.php [R,L]

A2
На сайте с 21.09.2010
Offline
99
#2

Спасибо, работает как надо!

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