Настройка .htcaccess. Подскажите как сделать?

mrbot mrbot   13.02.2018 17:18   390  
Добрый вечер. Ситуация такая. Имеется такой нынешний .htcaccess у сайта :

Options -Indexes
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . index.php [L]
ErrorDocument 404 /404.html
</IfModule>  
<Files ~ "\.(tpl)$"> Order allow,deny
Deny from all
</Files>  

  Мне необходимо:
 1) Настроить редиректы, чтобы все страницы БЕЗ слеша редиректились на страницы СО слешем. Потому что сейчас имеются множество дублей доступных со слешем и без;
2) Настроить редирект с index.php на главную.

Вчера, ничего не удаляя, добавлял такой код для редиректа слешей:
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

    Все работало отлично, НО по каким то причинам по адресу сайт/robots.txt выдавало 404 ошибку,т.е. роботс почему-то перестал быть доступен. С index.php настраивал редирект, но не срабатывало. Каким образом можно сделать так, чтобы ничего не сломать, роботс был доступен,и редиректы работали? Буду очень благодарен за информацию.

Ответы на вопрос (2) Написать ответ
thebestmen2007 thebestmen2007   13.02.2018 17:58
мне кажется это из-за этой строки RewriteCond %{REQUEST_URI} !\.
0
MrBest MrBest   13.02.2018 18:51
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/
RewriteRule .* / [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]
1

Войдите, чтобы написать ответ
Вход Регистрация

Гарант сделок продажи и покупки сайтов, доменов и услуг.