Попытка перенаправить URL к другой странице диапазоном IP

На самом деле существует число способы хранить информацию сессии (предполагающий использование ASP.NET). В памяти одна опция, которой действительно необходимо остерегаться. Я полагаю, что можно изменить его через web.config приложения. Можно использовать другие вещи как cookie или SQL Server для хранения информации состояния. Вот статья MSDN, которая говорит о состоянии сеанса ASP.NET. Вот другая статья, которая обсуждает выбор места хранения.

2
задан 25 August 2010 в 04:15
5 ответов

Попробуйте это:

RewriteEngine On
RewriteLog "/data/wre/var/logs/modrewrite.log"
RewriteLogLevel 5

RewriteCond %{REMOTE_ADDR} ^192\.168\.10\..* [OR]
RewriteCond %{REMOTE_ADDR} ^72\.139\.201\..* [OR]
RewriteCond %{REMOTE_ADDR} ^129\.233\.4\..*  [OR]
RewriteCond %{REMOTE_ADDR} ^208\.118\.97\.32
RewriteRule ^/solutions https://example.com/account/signin?go=outside [NE,NC,R=301]

Отметьте, несколькими директивами RewriteCond является неявно AND'd, необходимо указать, должны ли они быть OR'd вместо этого. Если Вы хотите, чтобы браузер помнил перенаправление, указывая, что постоянное перенаправление могло бы сохранить некоторую будущую обработку.

В зависимости от Вашей конфигурации могло бы быть легче указать Известные Хорошие диапазоны и перенаправление для всех остальных. Из переписать руководства по перенаправлению иностранцев: Руководство Apache

RewriteEngine on
RewriteCond   %{REMOTE_HOST}  !^.+\.ourdomain\.com$
RewriteRule   ^/solutions      https://example.com/account/signin?go=outside [NE,NC,R=301]
3
ответ дан 3 December 2019 в 10:22
  • 1
    Под, % RewriteCond {REMOTE_ADDR} ^208\.118\.97\.32 я должен добавить $ знака доллара на.32? Создание его % RewriteCond {REMOTE_ADDR} ^208\.118\.97\.32$? –  Louie Miranda 25 August 2010 в 05:12
  • 2
    Ну, я думал об этом, и это будет недопустимый IP, чтобы иметь последний октет 32 [1-9], таким образом, я полагал, что это не будет иметь никакого значения.Вам решать. –  Grizly 25 August 2010 в 05:52
  • 3
    Ahh, просто считайте свое объяснение для использования"!".. это - IP, который Вы хотите позволить затем.. должен, вероятно, отложить их в. –  Grizly 25 August 2010 в 06:01

Prix, я на самом деле следую за этим.

http://www.the-art-of-web.com/system/rewrite/

Conversely, you may want to allow only certain IP addresses to access the site:

RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$
RewriteCond %{REMOTE_ADDR} !^87\.65\.43\.21$
RewriteCond %{REQUEST_URI} !^sorry\.html  
RewriteRule .* /sorry.html 
Translation:

IF their IP address is not 12.34.56.78 
AND their IP address is not 87.65.43.21 
AND the request is not for sorry.html 
THEN display the sorry.html page 
0
ответ дан 3 December 2019 в 10:22
  • 1
    То, чем я смущен, Вы хотите ПОЗВОЛИТЬ им дюйм/с в вопросе, или Вы хотите заблокировать их? потому что этот ответ здесь делает то, что это, предполагают, чтобы сделать, это заблокирует их IP –  Prix 25 August 2010 в 06:04

Это 2 должно быть установлено любой в VirtualHost или Directory удаться:

RewriteLog "/data/wre/var/logs/modrewrite.log"
RewriteLogLevel 5

Вы могли попробовать то, что Вы хотите как это:

RewriteCond %{REMOTE_ADDR} ^192\.168\.10\. [OR]
RewriteCond %{REMOTE_ADDR} ^72\.139\.201\. [OR]
RewriteCond %{REMOTE_ADDR} ^129\.233\.4\.  [OR]
RewriteCond %{REMOTE_ADDR} ^208\.118\.97\.32$

который перевел бы в:

  • если IP запускается с 192.168.10.
  • или IP запускается с 72.139.201.
  • или IP запускается с 129.233.4.
  • или IP 208.118.97.32
0
ответ дан 3 December 2019 в 10:22

Возможно, я неправильно понимаю то, что Вы желаете сделать, но если я действительно понимаю то, что Вы пытаетесь сделать, похоже, что Вы делаете невероятно сложным способом.

Если это для целого сайта или всего каталога, почему не только используют позволить директиву в каталоге virtualhost строки файла конфигурации, как соответствующую?

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#allow

И набор 403 ошибочных страницы, чтобы быть sorry.html http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

Так что-то как:

<directory "/path/to/content/" >

Order Allow,Deny
Allow 192.168.0.0/255.255.0.0  # allow everyone from the 192.168.0.0/255.255.0.0 network
# every one else gets denied (default for stuff that has not matched is to the 
# last clause of the Order directive
# the error document for a 403 (forbidden) is the sorry.html page
ErrorDocument 403  /sorry.html

</directory> 
0
ответ дан 3 December 2019 в 10:22

Похоже, вы создаете завесу (стена входа в систему, стена платных услуг, завеса обслуживания и т. Д.), К которой могут добраться все, кроме нескольких диапазонов IP-адресов в Интернете.

Это вот что я сделал для создания такой конфигурации:

# This implements a maintenance curtain; only these three IPs
# can look behind the curtain. Note its useful to allow the box
# itself too.
#
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteCond %{REMOTE_ADDR} !123.234.45.6
RewriteCond %{REMOTE_ADDR} !123.234.45.78
RewriteCond %{REQUEST_URI} !^/maintenance-curtain/.*
RewriteRule / / [L,R=503]

ErrorDocument 503 /maintenance-curtain/index.html
ProxyPass /maintenance-curtain !
Alias /maintenance-curtain /var/www/maintenance-curtain

И она действительно очень похожа на вашу. Я предлагаю вам сначала упростить и протестировать только один IP. Если остальное, если ваша конфигурация довольно сложна, это может мешать, поэтому попробуйте доказать это в меньшем контексте или переместите его на более ранний этап конфигурации. Мешают ли виртуальные хосты; вам нужно реплицировать конфигурацию (используйте Include , если вам нужно это сделать).

Я скажу, однако, что я (я думаю) известные такие вещи, как REMOTE_ADDR, не должны быть установлены в случай, когда какой-то другой модуль не включен ... прошло некоторое время с тех пор, как я обнаружил такое поведение ... включен ли cgi_module?

1
ответ дан 3 December 2019 в 10:22

Теги

Похожие вопросы