Исправить htaccess

Цена договорная
22 августа 2020, 17:42 • 5 откликов • 78 просмотров
В существующем файле htaccess есть ошибка которая приводит к циклической переадресации, если в get-параметре передан url

В строках 9-11 происходит перенаправление c www на без-www и перенаправление с http на https
Ошибка находится в строках 9-11 .

Пример ошибки:
https://travelandia.ru/user/reg.php?rurl=https://travelandia.ru/lazarevskoe/gostevye-doma/medeya-24411/addreview/

Необходимо исправить ошибку, сохранив существующий функционал.

Нужно, чтобы правило перенаправления на страницы со слешем не действовало для несушествующих файлов с расширениями картинок, а сразу выдавалась ошибка 404.

Сейчас при удалении фотографий (с расширениями jpg, jpeg, png) происходит перенаправление на несуществующую страницу со слэшем, а уже затем выдается ошибка 404.

Вы можете предложить более лаконичные решения.
Что требуется от htaccess:
перенаправление с www на без-www
перенаправление с index.php , index.html , index.htm на главную
перенаправление со страниц без слэш в конце на страницы со слэшем.


Код файла:

<IfModule mod_rewrite.c>
AddDefaultCharset UTF-8
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

#в случае index.php:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://travelandia.ru/ [R=301,L]

#в случае index.html:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://travelandia.ru/ [R=301,L]

RewriteCond %{THE_REQUEST} //
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule .* /$0 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

</IfModule>