С Новым годом! Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946

Редирект на другой домен с условием

17.04.2019, 10:19. Показов 1690. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как в htaccess прописать редирект с условием не содержит параметр т.е:

сайт1.ру - редирект на сайт2.ру, со всеми реквестами
если содержит get-параметр aaa=10 редирект не делать
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2019, 10:19
Ответы с готовыми решениями:

Редирект на другой домен при post запросе
Ребята, подскажите, можно ли такое вообще реализовать через htaccess? нужно чтобы при обращении по ссылке http://site1.ru/test.php...

Редирект на другой домен с информацией о его смене
Доброго времени суток! Подскажите пожалуйста, как написать на php индексный файл, чтобы при заходе на старый домен, на экране открывалась...

Как сделать редирект со страницы моего сайта на другой домен, без изменения url
В общем....хочу чтобы при переходе по адресу site.ru/page1 - человек попадал на domen2.ru, но в адресной строке видел site.ru/page1 К...

6
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
17.04.2019, 15:43
Лучший ответ Сообщение было отмечено tgarl как решение

Решение

Префикс ! добавит отрицание.
Code
1
2
RewriteCond %{QUERY_STRING} !(^|&)aaa=10(&|$)
RewriteRule ^(.*)$ http://site2.ru/$1 [R=301,L]
1
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
17.04.2019, 17:19  [ТС]
я указывал
Code
1
RewriteCond %{!QUERY_STRING} (^|&)aaa=10(&|$)
Поэтому и не работал, спасибо
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
18.04.2019, 11:14  [ТС]
А можете подсказать как то же самое для nginx прописать?

Добавлено через 1 час 2 минуты
вот нашел, что через map можно сделать
Code
1
2
3
4
5
6
7
8
9
10
11
map $uri $need_redirect {
    "/api/.*"  0;    
    default    1;
}
 
server {
  listen 443 http2;
  
   if ($need_redirect){       
       rewrite ^(.*)$ https://site.ru$1 redirect;
    }
не работает

Добавлено через 18 минут
все намного проще:
Code
1
2
3
4
if ($request_uri !~ "^/api")
        {
            rewrite ^(.*)$ https://site.ru$1 redirect;
        }
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
15.05.2019, 13:10  [ТС]
Эх очередные загвоздки с сайтами и редиректами.
как правильно сделать?

есть 2 сайта: site1 и site2
нужно чтобы по домену site2 открывалось содержимое site1, а по переходу на домен site1 шел редирект на site2.
НО
чтобы для определенных людей site1 был тоже доступен.

Т.е. меняем доменные имена, делаем редиректы с исключением для определенных людей(параметров, или кукисов).

как я вижу есть 2 варианта:
1. в конфиге апача
<VirtualHost 127.0.0.1:8887>
DocumentRoot /home/bitrix/ext_www/site1
нужно прописать условия редиректов - тут у меня загвоздка как правильно прописать опираясь на
RewriteCond %{!QUERY_STRING} (^|&)aaa=9878797896896(&|$)
RewriteCond %{HTTP_COOKIE} !BITRIX_SM_LOGIN=tester9878797896896

2. переименовать просто папки сайтов, а затем
RewriteCond %{!QUERY_STRING} (^|&)aaa=9878797896896(&|$)
RewriteCond %{HTTP_COOKIE} !BITRIX_SM_LOGIN=tester9878797896896
прописать в .htaccess

2 вариант мне больше нравится он выглядит легче, но гложут сомнения не грохнутся ли оба сайта

Подскажите как правильнее и безопаснее? и если первый вариант как тогда правильно редиректы прописать?
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
15.05.2019, 15:36
Все настройки можно делать на уровне VirtualHost и переименовывать папки сайтов не потребуется.
Примерно так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost 127.0.0.1:8887>
ServerName site2
DocumentRoot /home/bitrix/ext_www/site1
</VirtualHost>
 
<VirtualHost 127.0.0.1:8887>
ServerName site1
DocumentRoot /home/bitrix/ext_www/site1
 
RewriteEngine On
 
RewriteCond %{QUERY_STRING} !(^|&)aaa=9878797896896(&|$)
RewriteCond %{HTTP_COOKIE}  !BITRIX_SM_LOGIN=tester9878797896896
RewriteRule ^/(.*) http://site2/$1 [R=301,L]
</VirtualHost>
1
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
20.05.2019, 11:39  [ТС]
Задача отложилась до сегодняшнего дня, начал делать и понял что пример не совсем удачен: в текущем варианте будет отображаться 1 и тот же сайт при таком условии.
А как правильно прописать чтобы DocumentRoot /home/bitrix/ext_www/site1 был разный если передано
Code
1
2
RewriteCond %{QUERY_STRING} !(^|&)aaa=9878797896896(&|$)
RewriteCond %{HTTP_COOKIE}  !BITRIX_SM_LOGIN=tester9878797896896
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2019, 11:39
Помогаю со студенческими работами здесь

Редирект на новый домен
как сделать редирект на новый домен? например чтобы страница domen1.ru/contact/ был редирект на domen2.ru/contact/ domen1.ru/catalog/ ...

Редирект с поддомена на домен
Здравствуйте! Столкнулся со следующей проблемой. Имеется домен sitename.ru и созданный к нему поддомен m.sitename.ru На sitename.ru, в...

Редирект с поддомена на домен
Как Сделать редерект ссылки профиля, на профиль поддомена ?? Надо как то в этой строчки прописать поддомен при переходе, а как не...

Редирект с условием (обучение)
Добрый день. На обучении поставили задачу описать редирект для домена /test.pictures/img.test.pictures/abc.jpg на поддомен...

Редирект с поддомена на основной домен
Добрый день. На сайте региональные поддомены вида город.сайт.ру. Нужно поставить редирект с определенного &quot;город&quot; на основной...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru