xersgor

Рейтинг
0
Регистрация
12.10.2021
webinfo #:

В htaccess у вас нет никаких цепочек. Судя по строке  "# http на https уже есть", редирект прописан в конфигурации сервера до  htaccess . Поэтому если хотите сделать без цепочек, то уберите редирект из конфигурации сервера и пропишите в  htaccess.

Понял.  Мне же придется прописывать переход с http -> https в htaccess, после отключения на сервере. Он же их будет видеть как 2 правила, а не одно. И цепочка всё равно останется. Или я ошибаюсь?          Спасибо за прошлый ответ)

Приветствую. Может кто-то подскажет по поводу следующих задач в htaccess:

1.  Есть сайт с различным кол-вом вложенности: сайт.ru/пример1/пример2/. Нужно, чтобы при запросе перекидывало на такой вид: сайт.ru/пример2. Пример1 может быть любое слово, как и Пример2:  сайт.ru/машины/БМВ/;  сайт.ru/цветы/розы/;  сайт.ru/ноутбуки/асер/. Я нашел следующее правило:

RewriteCond %{REQUEST_URI} ^/products/(.+)/(.+)$

RewriteRule ^products/(.*)$ /products/%2 [R=301,L] , которое работало как нужно, но не долго))) Я не знаю почему, но оно прекратило фурычить. Может кто-нибудь подскажет, что не так или предложит другой вариант.

2. Есть ли универсальное средство для решения цепочки редиректов? Я видел подобные вопросы здесь, но их чаще игнорят. В моём случае хотелось бы переходить с http://www.сайт.ru -> https://сайт.ru. Сейчас же у меня это занимает 2 редиректа. Если общего решения по поводу цепочек нет, то может кто подскажет  хотя бы по   http://www.сайт.ru -> https://сайт.ru

мой htaccess:

Options +FollowSymLinks

RewriteEngine On


#проба

RewriteCond %{REQUEST_URI} ^/products/(.+)/(.+)$

RewriteRule ^products/(.*)$ /products/%2 [R=301,L]


# c www на без

RewriteCond %{HTTP_HOST} ^www.сайт\.ru$ [NC]

RewriteRule ^(.*)$ https://сайт.ru/$1 [R=301,L]


# http на https уже есть


#нижний регистр

RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]


RewriteRule ![A-Z] - [S=28]


RewriteRule ^([^A]*)A(.*)$ $1a$2

RewriteRule ^([^B]*)B(.*)$ $1b$2

RewriteRule ^([^C]*)C(.*)$ $1c$2

RewriteRule ^([^D]*)D(.*)$ $1d$2

RewriteRule ^([^E]*)E(.*)$ $1e$2

RewriteRule ^([^F]*)F(.*)$ $1f$2

RewriteRule ^([^G]*)G(.*)$ $1g$2

RewriteRule ^([^H]*)H(.*)$ $1h$2

RewriteRule ^([^I]*)I(.*)$ $1i$2

RewriteRule ^([^J]*)J(.*)$ $1j$2

RewriteRule ^([^K]*)K(.*)$ $1k$2

RewriteRule ^([^L]*)L(.*)$ $1l$2

RewriteRule ^([^M]*)M(.*)$ $1m$2

RewriteRule ^([^N]*)N(.*)$ $1n$2

RewriteRule ^([^O]*)O(.*)$ $1o$2

RewriteRule ^([^P]*)P(.*)$ $1p$2

RewriteRule ^([^Q]*)Q(.*)$ $1q$2

RewriteRule ^([^R]*)R(.*)$ $1r$2

RewriteRule ^([^S]*)S(.*)$ $1s$2

RewriteRule ^([^T]*)T(.*)$ $1t$2

RewriteRule ^([^U]*)U(.*)$ $1u$2

RewriteRule ^([^V]*)V(.*)$ $1v$2

RewriteRule ^([^W]*)W(.*)$ $1w$2

RewriteRule ^([^X]*)X(.*)$ $1x$2

RewriteRule ^([^Y]*)Y(.*)$ $1y$2

RewriteRule ^([^Z]*)Z(.*)$ $1z$2


RewriteRule [A-Z] - [N]

RewriteCond %{ENV:HASCAPS} TRUE

RewriteRule ^/?(.*) /$1 [R=301,L]


# (//) убираем

RewriteCond %{THE_REQUEST} \s[^?]*//

RewriteRule ^.*$ /$0 [R=301,L,NE]


# (/) в конце 

RewriteCond %{REQUEST_URI} /+[^.]+$

RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]


# редирект с index и main

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm|pl)\ HTTP/ 

RewriteRule ^(.*)index\.(php|html|htm|pl)$ $1 [R=301,L] [OR]


RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.(php|html|htm|pl)\ HTTP/

RewriteRule ^(.*)main\.(php|html|htm|pl)$ $1 [R=301,L]



txt 23.txt