Задать вопрос
@VPVPVP

Что не так с этим htacess?

Использую такой вот htacess, но с ним что то не так. Когда убираю данный htacess, в админке работают кнопки,в данном htacess есть редиректы с www на без www, с верхнего в нижний регистр итд.
Подскажите что в нём не так?
Показывает что у меня mixed контент в админке когда этот htacess присутствует и еще пара моментов.

#order deny,allow
#deny from all

RewriteEngine on
RewriteBase /

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

php_value error_reporting 1

RewriteCond %{HTTP_USER_AGENT} ^.*(Chrome/76.0.3809.100).*$ [NC]
RewriteRule .* - [F,L]

#### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$  
   # Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d   
   # И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
   # Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$      
   # И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]     
   # Исключить слеш.
   
######regist####
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}} [L,R=301]
####

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]

#RewriteCond %{REQUEST_URI} !^/$
#RewriteCond %{REQUEST_URI} (.*)/$
#RewriteRule . %1 [R=301,L,E=NS:1,QSA]

RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

Redirect 301 /site/index /

RewriteCond %{REQUEST_URI} !^/generate-webp.php$ 
RewriteCond %{REQUEST_URI} !^/sitemap.php$ 
RewriteCond %{REQUEST_URI} !^/php.php$ 
RewriteCond %{REQUEST_URI} !^/allJS\.php?v2$ 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule ^ %1 [R,L,NC]
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
ну тут проще сказать что тут так

1. я писал стандартный .htacces и в нем было все продумано, вы вырезали с него куски,натыкали в разные места и спрашиваете что тут пошло не так.
К примеру у вас только один кусок отвечающий за убирание слеша, а добавлять слеш на каталоги ваше светейшество решило не делать ибо не судьба ?
2. htaccess читается сверху в низ и последовательность важна
3.
верхнего в нижний регистр итд
вы так же перемешали правила.
ну тут чтоб без матюгов я отвечу коротко Линукс регистрозависимая система ( это реально если матюгов и пены) какой "умный" человек вообще придумал делать такие редиректы заслуживает отдельного места в аду.
4.(Chrome/76.0.3809.10) - только данная версия остальные нет ?
5.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

это я так понимаю вы пытались удалить слешы у симлинков и файлов?

6.#RewriteCond %{REQUEST_URI} !^/$
ээ вас не смущает что таких ссылок в природе не бывает
домен закрывается слешем до реврайт рул, то есть это должно быть site.ru//index.php

в общем у вас правильно только часть ЧПУ движка и то странно разделена поо середине
напишите что у вас за движок и что вы хотели получить этими редиректами я вам напишу как это должно выглядеть
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы