Bisher wurde die Website im privaten Netzwerk gehostet, so dass der Zugriff auf Dateien nicht eingeschränkt werden musste.Wie den Zugriff auf öffentliche Dateien mit Apache und PHP zu beschränken?
Die Site ist eine Seite mit einer langen Tabelle, und jede Zeile entspricht einer Datei (mit derselben ID). Wenn Sie auf die Zeile klicken, lädt JS die Datei. Die Dateien sind öffentlich verfügbar, sodass JS sie ohne AJAX laden kann.
Jetzt ist die Seite mooved, um im Internet gehostet zu werden.
Ich kann den Zugriff auf die Hauptseite mit PHP einschränken, aber ich kann die Dateien nicht in unzugängliche Ordner verschieben, da JS nicht geladen werden kann.
Ich habe versucht, alle Zugriffe auf eine Login-Seite umgeleitet, wo PHP wird entscheiden, die wie folgt allowd ist:
in Apache:
RewriteRule (.*) /login.php
in login.php: wenn nicht outhorized: dissmissed werden
header('Location: ' . $_SERVER['request_url']);
Das Problem, das ich weiß nicht, wie apache wissen zu lassen, nicht jene ware bereits bestätigt umleiten: und wenn outhrized, wird auf Original-Datei reidrected zurück werden. so jetzt
apache redirect to login.php -> login.php redirect to original page -> apache redirects to login.php -> and so on...
ich versuchte env varable in PHP zu setzen:
$_ENV['stop_rewrite'] = true;
und in Apache:
<if !stop_rewrite>
RewriteRule (.*) /login.php
</if>
aber ich bekomme einen 500-Fehler ..
eine Idee Wie kann man das Problem umgehen?
Zuletzt habe ich etwas Derartiges es mit [einem Mod_perl Authentifizierungs handler] war (https://perl.apache.org/ docs/1.0/guide/security.html). Ich glaube nicht, dass es ein PHP-Äquivalent gibt. – Quentin