help! .htaccess

denden11
На сайте с 29.06.2005
Offline
94
697

Доброе время суток

Я внимательно прочитал все что нашлось по поиску, но готового решения не нашел

В свете последних фильтров от поисковиков возник вопрос о решительной борьбе с дублями страниц. Сам решил только частично,поэтому прошу помощи

Есть сайт без cms, голый html код с файлами типа *.php

Страницы сайта выглядят так:

site.ru/

site.ru/servise/

1. Проблема для главной

если набирать в адресной строке

site.ru/index.php - происходит переход на site.ru что нормально

но если набирать

site.ru/index.php/ (со слэшем)

или

site.ru/index.php/01/ тоже со слэшем или site.ru/index.php/01 без слэша то главная страница получается доступна сразу по множеству адресов:

site.ru/

site.ru/index.php/

site.ru/index.php/01/

site.ru/index.php/01

2 Проблема для директория

Если набирать

site.ru/servise/index.php

то сайт доступен сразу по любому количеству адресов

site.ru/servise/

site.ru/servise/index.php

site.ru/servise/index.php/ со слэшем

site.ru/servise/index.php/01 без слэша

site.ru/servise/index.php/01/ со слэшем и тд, можно подставлять что угодно

Сейчас .htaccess выглядит так:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^www.site.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]

ErrorDocument 404 http://www.site.ru/404.php

Помогите разобраться чего не хватает чтобы были доступны только один адрес для каждого файла и директории:

site.ru/

site.ru/servise/

DV
На сайте с 01.05.2010
Offline
644
#1

А зачем вы набираете слэш после index.php?

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
L2
На сайте с 18.06.2011
Offline
21
#2

Вверх

DirectoryIndex index.php
Options +FollowSymlinks
Options +Indexes

После RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

Не уверен, что поможет...

denden11
На сайте с 29.06.2005
Offline
94
#3
DenisVS:
А зачем вы набираете слэш после index.php?

Потому что существуют ХИТРЫЕ конкуренты, которые хотят сделать дубли - находят дыру в сайте, те ее дубль, - публикуют адрес дубля в инете, ПС его находит и - бан. Или лучше так - и бан

bon_eur
На сайте с 09.06.2012
Offline
40
#4

Короче говоря, если встречается index.php, то оставить только то, что до него. И отрезать все, что после ?

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ (.*/)index\.php [NC]

RewriteRule . %2? [R=301,L]

Так?

P.S. Ваши правила для хоста - некорректные: в строке !^www.site.ru$ перед точками должен стоять \

Кроме того, чуточку быстрее будет работать такой код (а вот здесь бэкслэши не нужны!):

RewriteCond %{HTTP_HOST} !=www.site.ru [NC]

RewriteRule .* http://www.site.ru/$0 [L,R=301]
Ezekiel
На сайте с 11.08.2010
Offline
28
#5
denden11:
Потому что существуют ХИТРЫЕ конкуренты, которые хотят сделать дубли - находят дыру в сайте, те ее дубль, - публикуют адрес дубля в инете, ПС его находит и - бан. Или лучше так - и бан

ИМХО, это Ваши фатазии.

серч_опасносте

конкуренты_давят

омг_дубли

Не устанете закрываться?

Обмен WebMoney (http://bit.ly/kqBOlV) Продам инвайт на Хабр (http://www.plati.ru/asp/pay.asp?idd=1529255)
denden11
На сайте с 29.06.2005
Offline
94
#6
bon_eur:
Короче говоря, если встречается index.php, то оставить только то, что до него. И отрезать все, что после ?
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ (.*/)index\.php [NC]

RewriteRule . %2? [R=301,L]


Так?

P.S. Ваши правила для хоста - некорректные: в строке !^www.site.ru$ перед точками должен стоять \

Кроме того, чуточку быстрее будет работать такой код (а вот здесь бэкслэши не нужны!):
RewriteCond %{HTTP_HOST} !=www.site.ru [NC]

RewriteRule .* http://www.site.ru/$0 [L,R=301]

Вот это помогло, огромное человеческое спасибо!!!!

Ezekiel:
ИМХО, это Ваши фатазии.
серч_опасносте
конкуренты_давят
омг_дубли

Не устанете закрываться?

у меня не cms и простой php и приведенное выше решение не дает возможности дописывать что либо после /

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