2009-07-02 5 views
12

Ich möchte mod_rewrite implementieren, um meine Website in Wartung zu setzen. Grundsätzlich würden alle IP-Adressen mit Ausnahme einer Handvoll, die wir angeben, an eine statische HTML-Seite weitergeleitet werden.mod_rewrite basiert auf ip

Bitte kann jemand mit dieser Regel helfen. Gibt es auch eine Möglichkeit, dies ein- und auszuschalten, ohne die htaccess-Datei zu bearbeiten?

Antwort

15

Sie verwenden, um die REMOTE_ADDR Variable in einem RewriteCond

RewriteCond %{REMOTE_ADDR} !^10\.0\.1\.1$ 
RewriteRule^/maintenance.html 

Gerade die Bedingungen ändern, die IP-Adressen Sie, Sie^für mehr als einen wollen entsprechen können (IP1 | IP2 | ... | IPN) $.

Über das Deaktivieren des Wartungsmodus ohne Änderung der .htaccess-Datei Ich denke, das ist nicht möglich, kurz vor dem Schreiben eines Programms, das es löschen oder anderweitig ändern würde, wäre es einfach, es umzubenennen.

+0

Vergessen Sie nicht, den Start und das Ende in Ihrem regulären markieren Ausdruck. – Gumbo

0

Sie können diesen Status aktivieren und über eine Verwaltungsschnittstelle deaktivieren, die in .htaccess schreiben kann (z. B. Berechtigungen, die auf 755 oder 777 festgelegt sind). es würde einfach immer die .htaccess finden, diese beiden Zeilen am Anfang einfügen und bei Deaktivierung der Wartung würde es diese zwei Zeilen löschen, den Rest der Datei unberührt lassen