Anzeige von php-Dateien verhindern

Funky_MF

Erfahrenes Mitglied
Hallo,
ich habe unsere Firmenwebsite re-designed und habe die Navigation nach dem Schema "index.php?page=1&subpage=2" aufgebaut. Die Inhalte sind dann jeweils php-Dateien, in denen der reine Content liegt, u.U. auch der eine oder andere php-Aufruf. Allerdings keinerlei include-Funktionen, alle Dateien die ich benötige, werden in der index.php per include eingebunden.
Wenn ich also jetzt eingebe: http://www.firmendomain.de/index.php?page=0&subpage=1 bekomme ich die Seite "Unternehmen" angezeigt, bzw. wird die Datei unternehmen.php per include eingebunden.

Soweit, sogut.
Wenn ich jetzt aber z.B. eingebe: http://www.firmendomain.de/unternehmen
sollte eigentlich ein 404-Error erscheinen, da das Verzeichnis /unternehmen nicht exisitiert.
Stattdessen wird aber die Datei unternehmen.php aufgerufen, und hier sind natürlich keinerlei includes vorhanden, welche z.B. die Navigation usw. einbinden.

Es gibt z.B. auch eine kontakt.php welche wiederum functions-Aufrufe für ein Formular benötigt, hier erscheint dann gleich eine php-Errormeldung bei Eingabe von http://www.firmendomain.de/kontakt

Ich versteh das nicht ganz..., gehostet ist das Ganze übrigens bei all-inkl.com und ich habe keinen Root-Zugriff auf die Webserver Konfiguration.

Wie kann ich das unterbinden ? Per entsprechender Anweisung in einer .htaccess ?

Wäre äusserst dankbar für einen kleinen Tip
 
Danke, mod_rewrite kannte ich schon, wie sich gerade herausstellt, hat mein Provider ein grundlegende Einstellung des Apache geändert, wodurch sämtliche Files auch ohne die Angabe der Dateiendung ansprechbar sind ! (Im Grunde genommen eine Frechheit, eine derartige Änderung durchzuführen, ohne die Kunden darüber zu informieren)

Vor dem Re-Design war die Website in verschiedene Ordnerstrukturen aufgebaut, und Google hat natürlich die Links noch alle gespeichert. Jetzt liegen aber alle Dateien in einem Verzeichnis, und manche haben eben genau die gleichen Namen wie zuvor die einzelnen Ordner.

Ich warte noch auf eine Antwort von der Supportabteilung von all-inkl.com und werde vielleicht hierzu noch einen Thread im Serverforum eröffnen, falls die mir nicht helfen können (oder wollen) oder möglicherweise den Provider wechseln....

Aber trotzdem danke für die Links !
 
Hi!

Wenn die Benutzer keinen Zugriff auf das Verzeichnis haben sollen, reicht normalerweise eine .htaccess mit der Zeile
Code:
deny from all

PHP kommt trotzdem noch an die Dateien dran...

Mamphil
 
Da die Supportabteilung von all-inkl nicht die schnellsten sind, hab ich eben jetzt alle Inhaltsdateien, welche zuvor im Root-Verzeichnis lagen, in ein Unterverzeichnis kopiert und dieses mit "Deny from all" versehen.

Jetzt versuche ich aber noch ein weiteres Problem in den Griff zu kriegen, nämlich die Weiterleitung der alten Links, die Google noch im Cache hat.
Hiermit klappt das ganz gut:
Code:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^unternehmen$ index.php?cat=1&page=0 [R]
Damit wird bei Eingabe der Verzeichnisnamen direkt weitergeleitet.
Aber wie kann ich diese Regel so erweitern, daß sie regressiv arbeitet, also auch noch Unterverzeichniss miteinbezieht und auch entsprechend nachfolgende Dateinamen ?
 
Zurück