Хотите перенаправить всех посетителей кроме меня

StackOverflow https://stackoverflow.com/questions/293285

  •  08-07-2019
  •  | 
  •  

Вопрос

По сути, я собираюсь начать работу над сайтом, и мне бы хотелось, чтобы что-то, что я мог добавить в свой файл .htaccess (или в другом месте), которое работало бы так, как этот псевдокод: (мой ip будет вместо 127.0.0.1)

if (visitors_ip <> 127.0.0.1)
    redirectmatch ^(.*)$ http://www.example.com/under-construction.html

Надеюсь, это имеет смысл ...

Это было полезно?

Решение

Это будет что-то вроде :

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1

RewriteCond %{REQUEST_URI} !/mypage\.html$  

RewriteRule .* http://www.anothersite.com/mypage.html [R=302,L]

Как отмечает Андрей , условие% {REQUEST_URI} позволяет избежать бесконечного цикла, если вы перенаправляете в тот же домен.

Как Xorax комментирует почти 9 лет спустя :

  

Вы не должны использовать REMOTE_HOST , во многих случаях это не удастся. Вы должны использовать REMOTE_ADDR .
  Cf " разница между REMOTE_HOST и REMOTE_ADDR "

Другие советы

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

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/coming-soon\.html$ 
RewriteRule .* http://www.andrewgjohnson.com/coming-soon.html [R=302,L]

Следует также отметить, что 302 является временным ходом и должен использоваться вместо ничего или 301.

<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect all except allowed IP
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.001$
RewriteCond %{REMOTE_ADDR} !000\.000\.000\.002$
ReWriteCond %{REMOTE_ADDR} !^000\.000\.000\.003$
RewriteRule (.*) http://YourOtherWebsite.com/$1 [R=301,L] 
</IfModule>

до вашего wordpress ifmodule это перенаправит всех, кроме рассматриваемого 3-го IP-адреса.

Вы просто зашли на сайт по ftp и измените файл .htaccess, если ваш IP-адрес изменится.

Будьте осторожны с этим подходом.

Я потерял сознание, приняв IP-подход к ограничению доступа, а затем потерял аренду моего IP-адреса.

Конечно, вы всегда можете ввести ssh в соответствующее поле и снова изменить файл .htaccess, но 5 минут паники, когда вы пытаетесь выяснить, что только что произошло, не совсем забавны, если вы этого не ожидаете. произойдет.

Вместо этого я рекомендую использовать .htaccess (в сочетании с файлом htpasswd) для запроса учетных данных для доступа к сайту разработки.

Хороший пример этого можно найти здесь: http://aplawrence.com/foo -web / Htaccess-authentication.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top