Помогите с htaccess

12
A
На сайте с 11.03.2011
Offline
60
729

Здравствуйте, форумчане.

Яндекс по части запросов показывает site.ru , по другим site.ru/index.php

Срочка в htaccess

RewriteRule index.php http://site.ru/ [R=301,L]

приводит к тому, что страницы

http://site.ru/index.php?cat=3

начинают открываться по адресу

http://site.ru/?cat=3

то есть это совершенно другие адреса, не те, по которым проиндексирован сайт

ВОПРОС:

Как правильно написать в htaccess, чтобы перенаправлялся только index.php, а

index.php?cat=3

остались как были?

PS

еще есть вариант написать в robots строчку

Disallow: /index.php

но на такое почему-то рука не поднимается, хочется редиректом вопрос решить.

Officer
На сайте с 20.10.2011
Offline
11
#1

Почему у вас рука не поднимается на то, что бы написать Disallow: /index.php ?

Это стандартная ситуация, так многие делают...

Полиция на страже юзабилити! Заказ аудита на повышение конверсии сайта (http://sitepolice.ru/?partner=5). Как повысить уровень доверия посетителей к сайту?
A
На сайте с 11.03.2011
Offline
60
#2
Officer:
Почему у вас рука не поднимается на то, что бы написать Disallow: /index.php ?
Это стандартная ситуация, так многие делают...

А яндекс также перестанет индексировать и все страницы вроде

index.php?cat=3

alehvx добавил 20.10.2011 в 09:20

если так делать, то вернее написать

Disallow: /index.php$

- c $ на конце

WebAlt
На сайте с 02.12.2007
Offline
251
#3

Как то так:

RewriteEngine On

RewriteCond %{THE_REQUEST} index\.(php|html|htm)
RewriteRule ^index\.(php|html|htm)$1 / [L,R=301]

(php|html|htm) - перечисление расширений.

A
На сайте с 11.03.2011
Offline
60
#4
WebAlt:
Как то так:
RewriteEngine On

RewriteCond %{THE_REQUEST} index\.(php|html|htm)
RewriteRule ^index\.(php|html|htm)$1 / [L,R=301]

(php|html|htm) - перечисление расширений.

тогда если только index.php нужен, то будет так, верно?

RewriteEngine On

RewriteCond %{THE_REQUEST} index\.php

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

alehvx добавил 20.10.2011 в 09:44

WebAlt:
Как то так:
RewriteEngine On

RewriteCond %{THE_REQUEST} index\.(php|html|htm)
RewriteRule ^index\.(php|html|htm)$1 / [L,R=301]

(php|html|htm) - перечисление расширений.

а не работает, нет вообще эффекта ...

izbushka
На сайте с 08.06.2007
Offline
110
#5
RewriteEngine On
RewriteCond %{QUERY_STRING} !.+
RewriteRule ^index.php / [R=301,L]

Важна позиция этого блока в файле. Попробуйте поставить вначале, или покажите весь файл

WebAlt
На сайте с 02.12.2007
Offline
251
#6
alehvx:
тогда если только index.php нужен, то будет так, верно?

RewriteEngine On
RewriteCond %{THE_REQUEST} index\.php
RewriteRule ^index\.php$1 / [L,R=301]

alehvx добавил 20.10.2011 в 09:44


а не работает, нет вообще эффекта ...

Потому что неправильно, нужно так:

RewriteCond %{THE_REQUEST} index\.(php)

RewriteRule ^index\.(php)$1 / [L,R=301]

Проверил у себя, все работает.

A
На сайте с 11.03.2011
Offline
60
#7
izbushka:
Важна позиция этого блока в файле. Попробуйте поставить вначале, или покажите весь файл

вставил сразу после

AddDefaultCharset utf-8

RewriteEngine On

RewriteBase /

Исходный файл целиком вот:

#####################################

# ShopOS: Shopping Cart Software.

# Copyright (c) 2008-2010

# http://www.shopos.ru

# http://www.shoposs.com

# Ver. 2.5.4

#####################################

AddDefaultCharset utf-8

RewriteEngine On

RewriteBase /

RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L]

RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L]

RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L]

RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L]

RewriteRule ^(product_info|index|shop_content).php(.*)$ redirector.php [L]

RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L]

RewriteRule ^(.*).html(.*)$ manager.php [L]

RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L]

# PHP 5, Apache 1 and 2.

<IfModule mod_php5.c>

php_value magic_quotes_gpc 0

php_value register_globals 0

php_value session.auto_start 0

php_value mbstring.http_input pass

php_value mbstring.http_output pass

php_value mbstring.encoding_translation 0

php_value default_charset UTF-8

php_value mbstring.internal_encoding UTF-8

</IfModule>

WebAlt
На сайте с 02.12.2007
Offline
251
#8
izbushka:
Важна позиция этого блока в файле. Попробуйте поставить вначале, или покажите весь файл

Все правильно, а то непонятно, что и куда вставляет ТС.

A
На сайте с 11.03.2011
Offline
60
#9

Заливаю этот файл - то же что и было ...

#####################################

# ShopOS: Shopping Cart Software.

# Copyright (c) 2008-2010

# http://www.shopos.ru

# http://www.shoposs.com

# Ver. 2.5.4

#####################################

AddDefaultCharset utf-8

RewriteEngine On

RewriteBase /

RewriteCond %{THE_REQUEST} index\.(php)

RewriteRule ^index\.(php)$1 / [L,R=301]

RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L]

RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L]

RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L]

RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L]

RewriteRule ^(product_info|index|shop_content).php(.*)$ redirector.php [L]

RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L]

RewriteRule ^(.*).html(.*)$ manager.php [L]

RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L]

# PHP 5, Apache 1 and 2.

<IfModule mod_php5.c>

php_value magic_quotes_gpc 0

php_value register_globals 0

php_value session.auto_start 0

php_value mbstring.http_input pass

php_value mbstring.http_output pass

php_value mbstring.encoding_translation 0

php_value default_charset UTF-8

php_value mbstring.internal_encoding UTF-8

</IfModule>

alehvx добавил 20.10.2011 в 10:13

WebAlt:
Все правильно, а то непонятно, что и куда вставляет ТС.

пишу в самом начале файла, после

AddDefaultCharset utf-8

RewriteEngine On

RewriteBase /

izbushka
На сайте с 08.06.2007
Offline
110
#10

alehvx, вставьте тот код, что я написал

12

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