2013-11-20 6 views
2

Предположим, что у меня есть сайт www.abcd.com, разработанный с использованием Linux, Apache, PHP & MySQL stack.Apache: RewriteCond перенаправить запрос от неизвестного IP

У меня есть веб-страница www.abcd.com/redirect.php, созданная для перенаправления всех неавторизованных пользователей.

Если запрос сделан веб-сайтом www.abcd.com или любым его файлом в подкаталоге [Ex: www.abcd.com/temp/images/aaa.js] от IP 180.11.34.1, то он должен перенаправить пользователя на www.abcd.com/redirect.php

Возможно ли перенаправление путем предоставления диапазона IP? Пример: От 180.11.34.1 до 180.11.34.123

Можно ли перенаправить все запросы, поступающие на мои веб-серверы php/cgi/js/css/файлы изображений; не через мой домен, на www.abcd.com/redirect.php?

+1

Вы можете сделать это с помощью «RewriteCond», но я бы не рекомендовал это как безопасную форму аутентификации. – ficuscr

+0

Можете ли вы предложить, какая будет безопасная форма? –

+1

Это действительно зависит от ваших потребностей. Обычно веб-сайты используют имя пользователя и пароль для аутентификации, а затем сеансы для поддержания состояния. Вы можете улучшить это с помощью проверки IP-адреса в приложении или белым списком на уровне брандмауэра. Или, может быть, решение с VPN имеет больше смысла - снова действительно зависит. – ficuscr

ответ

1

Возможно ли перенаправление путем предоставления диапазона IP? Пример: От 180.11.34.1 до 180.11.34.123

Вид из. Вы можете сортировать сделать регулярное выражение для этого:

RewriteEngine On 
RewriteCond %{REMOTE_ADDR} ^180\.11\.34\.([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-3])$ 
RewriteRule ^(.*)$ /redirect.php [L,R] 

Можно ли перенаправить все запросы, поступающие на мой веб-сервер PHP файлов/CGI/JS/CSS/изображений; не приходя через мой домен, чтобы www.abcd.com/redirect.php

Вы можете сделать это путем проверки реферер, однако, реферер может быть подделан, так что нет никакой гарантии, что вы собираетесь блокировать все :

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?abcd.com/ [NC] 
RewriteRule \.(php|cgi|js|css|gif|png|jpe?g|ico)$ /redirect.php [L,NC,R] 
+0

Спасибо за решение –

Смежные вопросы