Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 4
Регистрация: 29.07.2010
Сообщений: 211

Редирект с учетом поддоменов

23.10.2024, 09:06. Показов 644. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Redirect 301 /avtopark/gruzoperevozki-20-tonn/ /avtopark/gruzoperevozki-furami-20-tonn/
проблема в лишней цепочке сначала идет редирект на http://site.com/avtopark/gruzo... i-20-tonn/ потом на https://site.com/avtopark/gruz... i-20-tonn/
лишнее звено исчезает если указать так
Redirect 301 /avtopark/gruzoperevozki-20-tonn/ https://site.com/avtopark/gruz... i-20-tonn/
но есть несколько поддоменов (городов) и при переходе с города будет редирект на главный.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2024, 09:06
Ответы с готовыми решениями:

Редирект с поддоменов на страницы другого сайта
Всем ку! Нужна помощь... Есть сайт, весь утыканный поддоменами, одна страница = 1 поддомен. Сделан новый сайт, никаких...

Редирект со всех поддоменов *.site.ru на site.ru/*
Помогите пожалуйста сделать редирект со всех поддоменов *.site.ru на site.ru/*. Например: test.site.ru должно перенаправить на...

Редирект поддоменов на основной с сохранение URL
Как можно сделать редирект с поддоменов на основной с сохранением URL в строке браузера? Делю так: RewriteCond %{REQUEST_URI}...

8
221 / 133 / 38
Регистрация: 25.07.2021
Сообщений: 539
23.10.2024, 12:58
Нужен контекст, понимание как у вас все устроено сейчас.
Без этого можно лишь предполагать...

Мне видится, что у вас на фронте стоит nginx, который принимает запрос по https://site.com и перенаправляет к apache по http://site.com
А в самом apache что-то типа:
<virtualhost *:80>
servername site.com
serveralias *.site.com

И тогда все верно, вы просите apache сделать редирект (но делаете это без уважения), не указывая ни домен, ни http или https - вот он и берет то, что у него в конфиге указано. Т.е. http и домен из servername.

Правильней было бы сделать:
<virtualhost *:443>
servername https://site.com
И соотв. в nginx конфиге поправить чтобы он обращался все также по http, но на порт 443
Тогда apache будет "думать", что сайт работает по https и простые редиректы строить сразу с https://

Но это все лишь в случае если вручную все конфиги создавались. А если этим занимается какая-то панель управления, то проще наверное сделать редиректы в .htaccess как-то так:

rewriteengine on
rewriterule ^avtopark/gruzoperevozki-20-tonn/$ https://%{HTTP_HOST}/avtopark/gruzoperevozki-furami-20-tonn/ [NC,R=301]

Т.е. мы сохраняем домен/поддомен таким, с которым пришел запрос, но явно указываем https://
0
1 / 1 / 4
Регистрация: 29.07.2010
Сообщений: 211
23.10.2024, 14:51  [ТС]
попробовал
RewriteEngine On
RewriteRule ^avtopark/gruzoperevozki-20-tonn/$ https://%{HTTP_HOST}/avtopark/gruzoperevozki-furami-20-tonn/ [NC,R=301]
совсем не работает, не происходит редиректа
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
23.10.2024, 15:50
Цитата Сообщение от EvgenUA Посмотреть сообщение
И соотв. в nginx конфиге поправить чтобы он обращался все также по http, но на порт 443
Тогда apache будет "думать", что сайт работает по https и простые редиректы строить сразу с https://
Это так не работает.
Включением https управляет директива SSLEngine.


Цитата Сообщение от EvgenUA Посмотреть сообщение
rewriteengine on
rewriterule ^avtopark/gruzoperevozki-20-tonn/$ https://%{HTTP_HOST}/avtopark/gruzoperevozki-furami-20-tonn/ [NC,R=301]
Тут нужен флаг L иначе продолжится исполнение остального списка правил.
Где-то ниже есть правило которое отправляет все запросы в единую точку входа и ожидаемого редиректа 301 не происходит.

https://httpd.apache.org/docs/... tml#flag_r
You will almost always want to use [R] in conjunction with [L] (that is, use [R,L]) because on its own, the [R] flag prepends http://thishost[:thisport] to the URI, but then passes this on to the next rule in the ruleset
0
221 / 133 / 38
Регистрация: 25.07.2021
Сообщений: 539
23.10.2024, 16:28
Ну никто не видел всех правил в его .htaccess, возможно там что-то мешает.
На пустом у себя проверил, работало.

Цитата Сообщение от Emilien Посмотреть сообщение
Это так не работает
Что не работает? Нам не надо полноценно включать ssl на apache, надо лишь сделать чтоб это так "выглядело" для .htaccess, для php дальше.

У меня везде именно так и сделано. Nginx к apache по http, а в самом apache даже mod_ssl нету.
Но из скриптов видно:
REQUEST_SCHEME = https
HTTPS = on
SERVER_PORT = 443
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
23.10.2024, 21:57
Цитата Сообщение от EvgenUA Посмотреть сообщение
Что не работает? Нам не надо полноценно включать ssl на apache, надо лишь сделать чтоб это так "выглядело" для .htaccess
Ну вот в стартовом сообщении правило для .htaccess
Redirect 301 /avtopark/gruzoperevozki-20-tonn/ /avtopark/gruzoperevozki-furami-20-tonn/
И вы пишете что достаточно <virtualhost *:443> для того чтобы редиректы строить сразу с https://.
Нет это так не работает.

Сказать apache слушать порт 443, но не включать SSLEngine.
В таких условиях apache будет в ответах использовать http://, а никак не https://.
Без SSLEngine само по себе https:// в таких условиях не появится для этого нужно ещё что-то.
Вот про это что-то в вашем посте нет ни слова.

Например, на стороне nginx c помощью директивы proxy_redirect менять ответ получаемый от apache.
Например, на стороне apache подменять на https:// умеет модуль mod_rpaf.

Добавлено через 13 минут
Только сейчас разглядел там фокус в servername впендюрить https://
Тоже вариант.
0
221 / 133 / 38
Регистрация: 25.07.2021
Сообщений: 539
23.10.2024, 22:08
Предлагаю вам сперва попробовать, а потом утверждать работает/нет :]

Копирую куски конфигов с одного из работающих сайтов:

1) nginx:
Code
1
2
3
4
5
6
7
8
9
10
11
12
location / {
                proxy_pass http://127.1.1.22:443;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Ssl on;
                proxy_set_header X-Server-Address $server_addr;
                proxy_connect_timeout 60;
                proxy_send_timeout 60;
                proxy_read_timeout 60;
}
Видим, что обращение к apache идет именно по http, но на 443 порт

2) apache:
Code
1
2
3
4
5
<virtualhost *:443>
        setenv HTTPS on
        servername https://домен
...
</virtualhost>
В конфигах apache нигде нет sslengine on
И сам apache собирается из исходников с ключем --disable-ssl

А потом через .htaccess делаем редирект:
Code
1
Redirect 301 /avtopark/gruzoperevozki-20-tonn/ /avtopark/gruzoperevozki-furami-20-tonn/
В результате перехода на http://сайт не будет, а будет сразу на https://сайт

Добавлено через 5 минут
Цитата Сообщение от Emilien Посмотреть сообщение
фокус
Да :]
В общем схема рабочая, проверенная. Лишнего шифрования между nginx и apache нет и при этом нет неприятных моментов, когда из .htaccess или php сайт видится работающим по http

В инете к примеру полно советов как делать редирект с http на https по определению порта или еще как-то. И вот вам ситуация, когда apache будет бесконечно делать редирект, т.к. постоянно будет думать, что сайт по http работает.
0
1 / 1 / 4
Регистрация: 29.07.2010
Сообщений: 211
25.10.2024, 12:29  [ТС]
RewriteEngine On
RewriteRule ^avtopark/gruzoperevozki-20-tonn/$ https://%{HTTP_HOST}/avtopark/gruzoperevozki-furami-20-tonn/ [NC,L=301]
работает. но почему цепочка получается 302 -> 200. сеошник требует чтобы было 301
0
221 / 133 / 38
Регистрация: 25.07.2021
Сообщений: 539
25.10.2024, 13:21
Цитата Сообщение от sergm87 Посмотреть сообщение
требует
так пусть доплачивает значит...

[L,R=301]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2024, 13:21
Помогаю со студенческими работами здесь

Редирект поддоменов с https на http, nginx
Добрый день! Есть VPS nginx+apache . Есть такой конфиг(для битрикса), который должен основной домен отдавать по https, а поддомены только...

Редирект с поддоменов на основной сайт, учитывая запросы
Добрый день! Есть cms с таким функционалом: пользователь создает себе сайт, выбирает название поддомена, и сайт у него должен быть...

Редирект htaccess - Нужен редирект с корня папки на файл в другой папке
Здравствуйте, мне нужен редирект с корня папки на файл в другой папке(по сути главная страница находится не в корне, а в папке). Гуглил,...

Нужно создать редирект сайта случайным образом, Случайный редирект на 1 из 3 сайтов
Мне нужно написать код или скрипт чтобы при переходе на сайт сразу происходил редирект на 1 из 3 других сайтов случайным образом. Как это...

Нужно создать редирект сайта случайным образом, Случайный редирект на 1 из 3 сайтов
Мне нужно написать код или скрипт чтобы при переходе на сайт сразу происходил редирект на 1 из 3 других сайтов случайным образом. Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru