Как убрать цепочку редиректов через .htaccess? - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD67642.2237
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 28.01.2020, 13:52
Start Post: Как убрать цепочку редиректов через .htaccess? 
  #11
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
По умолчанию

Да простят меня админы, не нашел на форуме ответа.
Стоит задача редиректить все урлы папки /demo/ на морду
httpS://WWW.site.com/ (в том числе httpS: без www, http: c www, httpS: c www).
Сейчас в htaccess прописано такое правило для папки /demo/

RewriteCond %{REQUEST_URI}?%{QUERY_STRING} "\/demo\/.*?$"
RewriteRule ^(.*)$ https://www.site.com/ [L,R=301]

В итоге имею такую шляпу



Я дохуя вариантов перепробовал, но убрать цепочку так и не смог.
Где грабли?
Aglomerat вне форума  
Старый 29.01.2020, 17:54   #12
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от RUma Посмотреть сообщение
вставь в самый верх корневого .htaccess после RewriteEngine on перед другими правилами

##
RewriteEngine on
RewriteRule ^.htaccess$ - [F]

RewriteCond %{REQUEST_URI} ^/demo/
RewriteRule (.*) https://www.h.com/? [R=301,L]

... другие правила
##

если сайт за cloudflare с опцией перенаправлять все запросы на https,
то при запросах http://h.com/demo/ будет два редиректа:
на https, затем на морду,

при любых https запросах с www или без h.com/demo/ должен быть один редирект,

если всё равно будет больше двух редиректов, скинь в личку или сюда весь код .htaccess.
Получилось! Спасибо человечище
Aglomerat вне форума  
Старый 30.01.2020, 10:14   #13
lex_network
Хостинг, серверы, домены.
 
Регистрация: 14.03.2017
Сообщений: 155
Бабло: $24270
По умолчанию

Здравствуйте.
Для того, чтобы сделать редирект с site.com/demo/ на site.ru, воспользуйтесь одним из вариантов ниже.

Вариант №1 - у вас proxy nginx
Для этого:
1. Зайдите на сервере под SSH.
2. Создайте отдельный конфигурационный файл
touch /etc/nginx/vhosts-includes/demo-redirect.conf
3. Исправьте код ниже и внесите его в файл:
location /demo/ {
if ($host = site.com) {
rewrite ^/(.*)$ https://site.com/$1 permanent;
}
}" > /etc/nginx/vhosts-includes/demo-redirect.conf
4. Проверьте, что в конфигурации nginx все хорошо и нет ошибок:
nginx -t
5. Перезапустите nginx
service nginx reload
service nginx restart (если reload не будет успешным)

Вариант №2 - с использованием функций apache сервера
Для этого:
1. Зайдите на сервере под SSH.
2. Зайдите в корень сайта
3. В корне сайта создайте файл .htaccess, если такого не существует.
4. Внесите в файл .htaccess, но не в самый конец файла, желательно в начале:
RewriteEngine On
RewriteRule ^demo/(.*)$ http://site.com/ [R=301,L]
lex_network вне форума