Хотите перенаправить всех посетителей, кроме меня
В основном я собираюсь начать работу над сайтом, и мне бы хотелось добавить что-то, что я могу добавить в мой .htaccess файл (или где-нибудь еще), который будет работать как этот псевдо-код: (мой ip будет вместо 127.0.0.1)
if (visitors_ip <> 127.0.0.1)
redirectmatch ^(.*)$ http://www.example.com/under-construction.html
Надеюсь, это имеет смысл...
Ответы
Ответ 1
Это будет что-то вроде:
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]
Как Andrew указывает, что условие% {REQUEST_URI} позволяет избежать бесконечного цикла, если вы перенаправляетесь в тот же домен.
Как Xorax комментарии почти 9 лет спустя:
Вы не должны использовать REMOTE_HOST
, во многих случаях он будет терпеть неудачу. Вы должны использовать REMOTE_ADDR
.
Cf "разница между REMOTE_HOST
и REMOTE_ADDR
"
Ответ 2
Здесь решение, которое я закончил использовать, обратите внимание, что он похож на 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.
Ответ 3
<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-адрес изменился.
Ответ 4
Будьте осторожны с этим подходом.
Я обжегся, применяя подход, основанный на IP, к ограничению доступа, а затем потерял аренду по моему IP-адресу.
Конечно, вы всегда можете ssh в поле, о котором идет речь, и снова измените файл .htaccess, но 5 минут паники, когда вы пытаетесь выяснить, что только что произошло, не совсем весело, если вы не ожидаете его произойдет.
Я рекомендую вместо этого использовать файл .htaccess(вместе с файлом htpasswd) для запроса учетных данных для доступа к вашему сайту разработки.
Хороший пример: http://aplawrence.com/foo-web/htaccess-authentication.html