it-swarm.com.de

.htaccess Weiterleitung an alle IPs außer meiner

Im Grunde versuche ich, am Frontend einer Website zu arbeiten, aber ich möchte, dass alle außer mir selbst auf eine Konstruktionsseite umgeleitet werden, wenn Sie möchten. Ich habe momentan:

redirect 301 /index.php http://www.domain.com/construction.php

Während dies funktioniert, funktioniert es zu gut, ich möchte die Live-Site dennoch selbst sehen können. Kann ich nur meine IP ausschließen?

Danke noch einmal.

25
Aaron Lee

Sie könnten es mit mod_rewrite tun

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=123.45.67.89
RewriteRule index.php$ /construction.php [R=301,L]
60
kufi

Sie müssen vor dem Weiterleiten einige Bedingungen erfüllen:

RewriteCond %{REMOTE_ADDR} !=1.3.3.7
RewriteCond %{REQUEST_URI} !=/construction.php
RewriteRule .* /construction.php [L]

Um sicherzustellen, dass nach dem Entfernen der Sperre die Clients die tatsächliche Seite sehen, leitet diese Lösung die Clients nicht dauerhaft (unter Verwendung einer 301-Weiterleitung) um, sondern leitet sie intern weiter. Ersetzen Sie 1.3.3.7 für die tatsächliche IP-Adresse, die Sie verwenden.

25
Linus Kleen

Wenn Ihre Apache-Version 2.4 * ist, können Sie Ihre Besucher mit den folgenden Anweisungen in htaccess auf die Konstruktionsseite umleiten:

<If "%{REMOTE_ADDR} !='yourIp'">
RedirectMatch ^/((?!construction.php).*)$ /construction.php
</If>

Wenn die IP-Adresse nicht yourIp ist, werden alle Anforderungen an /construction.php umgeleitet.

In älteren Apache-Versionen können Sie die folgende auf Modrewrite basierende Lösung verwenden:

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^myIP$
RewriteRule !construction\.php /construction.php [L]

Dies schreibt die Anforderung an /construction.php intern vor, wenn die RewriteCondition erfüllt ist. Sie können L durch R ersetzen, wenn Sie die umgeleitete URL in der Adressleiste des Browsers anzeigen möchten.

4
starkeen

hi da könntest du folgendes in .htaccess datei machen

RewriteEngine on
# Redirect all except allowed IP
RewriteCond %{REMOTE_ADDR} !^12.345\.678\.901$
RewriteRule /index.php http://www.domain.com/construction.php [R=302,L]

setzen Sie Ihre IP statt 12.345.678.901

3
olly_uk

Folgendes hat für mich gearbeitet

Deny from all
Allow from xxx.xxx.xx.xxx 
1
Baig

Wenn Sie über eine Reihe von IP-Adressen verfügen, die Sie von der Seite "In Bearbeitung" ausschließen möchten, können Sie | verwenden.

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^127.0.0.1|212.250.141.228
RewriteRule ! construction\.html /construction.html [R]

Es ist wichtig, die letzten beiden Zeilen an das Ende Ihrer .htaccess-Datei zu setzen, insbesondere wenn sie mehr Regeln zum Umschreiben enthält. 

0
Adam Bubela

Eine andere Idee ist, nur auf einen bestimmten Bereich zuzugreifen

RewriteEngine on
RewriteBase /
# Validator
SetEnvIf Remote_Addr "^128.30." IsInt
# Local
SetEnvIf Remote_Addr "^192\.168" IsInt
Order allow,deny
Allow from env=IsInt
0
speciale

Sie können nicht nur die if-Direktive als andere vorgeschlagene Antworten verwenden, sondern Sie können auch mehrere IPs hinzufügen, indem Sie andere Bedingungen in eine Direktive einfügen, indem Sie den &&-Operator als solche verwenden:

<If "%{REMOTE_ADDR} != '127.0.0.1' && %{REMOTE_ADDR} != '192.168.1.1'">
    RedirectMatch ^/((?!construction.php).*)$ /construction.php
</If>

Die Dokumente finden Sie hier: http://httpd.Apache.org/docs/2.4/mod/core.html#if

0
Max