Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: htaccess перенапрвление по условию  (Прочитано 1536 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
htaccess перенапрвление по условию
« : 08 Декабря 2015, 14:07:29 »
Все привет! Нужно реализовать перенаправление в зависимости от IP адреса посетителя, точнее так: Если пользователь имеет адрес 192.168.0.0/24 или 10.0.0.0/24, тогда просто пропускаем его к сайту "my.company.com", если нет то перекидываем его в подпапку my.company.com/external/
Подскажите как это можно сделать?

Пробовал вот так:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=192.168.0. [OR]
RewriteCond %{REMOTE_ADDR} !=10.0.0.
RewriteRule ^(.*)$ http://my.company.com/external [L]

Получил ошибку что перенаправление никогда не завершится.
Буду благодарен за любой совет.
Спасибо!

Оффлайн kobaltd

  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #1 : 08 Декабря 2015, 17:00:38 »
да же не вникая в апаче но логически
для пример
192.168.0.1 удовлетворяет условию  !=192.168.0. - нет
192.168.0.1 удовлетворяет условию  !=10.0.0. - да
- получаем редирект
10.0.0.1 удовлетворяет условию  !=192.168.0. - да
10.0.0.1 удовлетворяет условию  !=10.0.0. - нет
- получаем редирект
192.168.1.1 удовлетворяет условию  !=192.168.0. - да
192.168.1.1 удовлетворяет условию  !=10.0.0. - да
- получаем редирект

У Вас всегда будет редирект - наверное о этом Вам и сообщают. У Вас как минимум надо OR менять на AND


Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #2 : 08 Декабря 2015, 18:05:43 »
Тогда получается что у меня условие И, а не ИЛИ. А мне нужно чтобы было, что если ip адрес посетителя не относится к двум указаным подсетям, то перекинуть в подпапку.
Или нельзя может так? Нужно так: условие -> действие, затем условие2 -> действие2?

Оффлайн kobaltd

  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #3 : 08 Декабря 2015, 19:01:43 »
У Вас ридирект запускается когда срабатывает условие, а Ваше "условие" построено так что сработает в любом случаи. по логико должно быть AND - не равно одной подсети и в тоже время не равно и второй подсети, а у Вас не равно хотя бы одной из подсетей - а это будет ВСЕГДА - чувствуете разницу?

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #4 : 08 Декабря 2015, 19:10:14 »
Вижу. А если оставить так, должно работать? В теории?
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=192.168.0.
RewriteRule ^(.*)$ http://my.company.com/external [L]

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #5 : 08 Декабря 2015, 19:14:00 »
есть программа php или ...?

пример у меня люблю баш скрипт.

#!/bin/bash
if [ "$REMOTE_ADDR" == "127.0.0.1" ];then
echo "location: http://google.com"
echo
exit
fi
...
....

cылку http://127.0.0.1/... будет на гоогле.
Wars ~.o

Оффлайн kobaltd

  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #6 : 08 Декабря 2015, 19:14:52 »
насколько я помню там выборка производиться регулярным выражением - а значит надо как минимум за экранировать спец символы ну и не плохо обозначить начало строки
как то так, а по логике должно рабоать

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #7 : 08 Декабря 2015, 19:25:03 »
есть программа php или ...?

пример у меня люблю баш скрипт.

#!/bin/bash
if [ "$REMOTE_ADDR" == "127.0.0.1" ];then
echo "location: http://google.com"
echo
exit
fi
...
....

cылку http://127.0.0.1/... будет на гоогле.


С баш-скриптом было бы намного легче, но я пока не вкурил как такая связка вообще работает и работает ли. Спасибо за совет, загуглю...

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #9 : 08 Декабря 2015, 19:34:15 »
Бред какой-то, даже простой вариант редиректа, типа:
RewriteEngine on
RewriteRule ^(.*)$ http://my.company.com/external [L]
работать не хочет.
Цитировать
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Пользователь решил продолжить мысль [time]08 Декабрь 2015, 21:03:48[/time]:
В моем случае правильный редирект выглядит так
RewriteEngine on
RewriteRule ^$ http://my.company.com/external [L]

Теперь условия...

Пользователь решил продолжить мысль 08 Декабря 2015, 21:06:38:
Нашел в сети еще такой вариант:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.[0-255]
RewriteRule ^$ http://my.company.com/external [L]
Но он не работает, редиректит всех без разбора
« Последнее редактирование: 08 Декабря 2015, 21:06:38 от Vlad.V »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28455
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #10 : 08 Декабря 2015, 22:15:36 »
Не надо этого хотеть.
Надо просто сделать два сайта(VirtualHost) в таком случае. И роутить клиентов ещё до апача.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #11 : 08 Декабря 2015, 22:55:13 »
Чем лучше редиректить до апача? Это на случай если ответа не найду ибо все таки понятнее для народа, когда адрес один))

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28455
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #12 : 09 Декабря 2015, 02:28:51 »
Что именно вы понимаете под адресом?…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #13 : 09 Декабря 2015, 09:15:38 »
Что именно вы понимаете под адресом?…
my.company.com

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: htaccess перенапрвление по условию
« Ответ #14 : 09 Декабря 2015, 10:29:32 »

RewriteEngine on
RewriteRule ^$ my.company.com.external.sh

my.company.com.external.sh
#!/bin/bash
echo "location: http://my.company.com/external"
echo


?
Wars ~.o

 

Страница сгенерирована за 0.136 секунд. Запросов: 25.