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

mrbot mrbot  
0
  13.02.2018 17:18       729     Помощь  
Добрый вечер. Ситуация такая. Имеется такой нынешний .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
140
13.02.2018 17:58
мне кажется это из-за этой строки RewriteCond %{REQUEST_URI} !\.
0
MrBest MrBest
209
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