Заплачу на правильную настройку .htaccess

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

Добрый день

Есть сайт без 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/

site.ru/contacts/

Ищу спецов

S
На сайте с 29.09.2009
Offline
133
#1

Попробуйте, так:

Options +FollowSymLinks

RewriteEngine on

# редирект с www на без www
RewriteCond %{HTTP_HOST} ^www.vash-site.ru
RewriteRule ^(.*)$ http://vash-site.ru/$1 [R=301,L]

# слэш в конце адреса
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.+[^/])$ http://%{SERVER_NAME}/$1/ [L,R=301,QSA]

# индекс.пхп - исправление ошибки
RewriteCond %{THE_REQUEST} ^.*/index.ph.
RewriteRule ^(.*)index.ph. http://vash-site.ru/$1 [R=301,L]

# error 404
ErrorDocument 404 http://vash-site.ru/404.php

S
На сайте с 23.05.2004
Offline
315
#2

Нафига заморачиваться над такими проблемами ? Это нормальное поведение вэб сервера, когда передаются параметры не играющие роли.

Это просто подпись.
AlexSasa
На сайте с 07.05.2011
Offline
25
#3

Также присоединяюсь к данному вопросу. Задача: настроить .htaccess так чтобы при переходе с поисковой системы гугл или яндекс посетителю отображались постоянные урлы в адресной строке. К примеру посетитель перешел с поисковика по адресу сайт.ру/раздел/название страницы.хтмл а в адресной строке ему отображается короткий адрес только сайт.ру. Но поисковый робот все видит нормально. Предложения в личку.

---------- Добавлено 09.07.2012 в 17:47 ----------

И чтобы поисковую систему можно выбирать

Трогательные поздравления своими словами в прозе тут (https://pozdravljalka.ru/)

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