RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^robots.txt
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^Olddir/(.*)$ Newdir/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.xml$
RewriteCond %{REQUEST_URI} !.txt$
RewriteRule (.+) $1/ [R=301,L]
</IfModule>
AddDefaultCharset UTF-8
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
Первый блок редиректит с http на https. Проблема в том что не работает исключение для robots.txt. Он должен быть доступен и по http и по https. При обращении к robots.txt по http срабатывает правило из последнего блока, и перекидывает на sait.ru/index.php, хотя судя по конструктору http://htaccess.madewithlove.be/ этого происходить не должно. Не силен в апаче, поэтому прошу помощи.