Direktzugriff verweigern

Hallo,
ich habe eine index.php, über die alle anderen Seiten aufgerufen werden.

Ich binde die Seiten mit include ein.

Jetzt will ich aber nicht, das man nicht direkt auf die Dateien die eingebunden werden zugreifen kann.

BSP: index.php?site=news bindet die Datei news.php ein.
Ich will iwie unterbinden das man die news.php direkt im Browser aufrufen kann…

MfG, andi

RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [QSA]
RewriteRule ^([^(index)])\.php$ index.php?site=$1 [QSA]

sollte in einer htaccess reichen…
Das ist sogar eine bessere Variante, da sie alle “XYZ.html” auf “index.php?site=XYZ” umwandelt :wink:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Ein Fehler in der Syntax??
Kenn mich mit htaccess leider nicht aus.

Mhh komisch, wenn ich das ganze auf bplaced lade, passiert gar nichts…es wird einfach die Datei angezeigt…

RewriteEngine on
RewriteRule ([A-Za-z0-9\-_]*).html$ index.php?site=$1

danke, aber es kommt der gleiche fehler wieder…

kann das an meiner apache konfiguration liegen?

mfg

Lokal? Du musst mod_rewrite installieren :wink:

Einfach die fraglichen Dateien in ein Unterverzeichnis stecken
und dies per .htaccess für jeglichen Zugriff per HTTP sperren,
PHP kommt da trotzdem per include dran.

Je nach Einbindung des GET-Parameters kann da aktuell ohnehin
ein Sicherheitsproblem entstehen, wenn du zuvor nicht genau
prüfst, ob die Datei für die Anzeige per include überhaupt
erwünscht ist…

mhh das is nich dabei…so nen schwachsinn^^

@hoffman, ja ich hab die seiten in einer switch abfrage, wo auch eine default site gesetzt ist, also können nich einfach andere dateien includet werden

ps: was ist bei sowas eigentlich besser?
die seiten in ein array zu schreiben, oder in eine switch abfrage?

array :wink: