2009-08-15 8 views
12

Hier ist die Situation ....htaccess allow localhost problem

Ich habe einen Cron-Job geplant, der ausgeführt wird, um meine Datenbank zu sichern. Aufgrund der Art, wie PHP installiert ist, muss ich Lynx verwenden, um das PHP-Skript zu treffen, das die Sicherung durchführt.

Da dieses Skript in meinem public_html-Ordner enthalten sein muss, möchte ich alle Anfragen mit Ausnahme derjenigen ablehnen, die direkt von meinem Server stammen (z. B. localhost). Außerdem nehme ich an, dass die IP, von der ich komme, 127.0.0.1 ist. Ich bin mir nicht ganz sicher, ob das stimmt, aber ich kann mir nicht vorstellen, was sonst meine IP in dieser Situation wäre. Habe ich recht, dass der Cron-Job läuft und das Skript von 127.0.0.1 aus startet?

Hier ist, was meine .htaccess wie folgt aussieht:

order allow,deny 
deny from all 
allow from 127.0.0.1 

Als Ergebnis Ich erhalte einen 403 Forbidden. Was ich für alle anderen außer für mich selbst tun möchte. Vielleicht mache ich das falsch ... Sieht jemand was ich falsch mache?

Antwort

26

um den Auftrag in die andere Richtung verwenden, das heißt:

order deny,allow 
deny from all 
allow from 127.0.0.1 
+1

Ah, vielen Dank, dass du das gezeigt hast! Nicht sicher, warum ich das gemacht habe .... Außerdem habe ich festgestellt, dass ich die IP-Adresse meines Serverzugriffs und nicht localhost zulassen musste. Ich nehme an, dass, weil ich die voll qualifizierte (http: // .....) Adresse treffe, wenn ich lynx im cron Job verwende. Danke für die Hilfe. – Anthony

+0

Brilliant, ich lege die IP meines Telefons in erlauben. Jetzt kann ich es tun. :) – nich

+5

Ich denke, du solltest auch von ':: 1 'erlauben, denn sonst kann es dich nicht einlassen (Apache 2.4.7) – anestv

4

Require local

Der lokale Anbieter ermöglicht den Zugriff auf den Server, wenn eine der folgenden Bedingungen erfüllt ist:

  • die Client-Adresse entspricht 127.0.0.0/8
  • die Client-Adressen s :: 1
  • sowohl der Client als auch der Server-Adresse der Verbindung sind die gleichen

Dies ermöglicht eine bequeme Möglichkeit, Verbindungen zu entsprechen, die von dem lokalen Host stammen:

Require local