Настройка .htcaccess. Подскажите как сделать?
Добрый вечер. Ситуация такая. Имеется такой нынешний .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
настраивал редирект, но не срабатывало.
Каким образом можно сделать так, чтобы
ничего не сломать, роботс был доступен,и редиректы работали? Буду очень
благодарен за информацию.
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]