• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Verhindern des Aufrufs von PHP-Scripten auser index.php

Puccini

Neues Mitglied
Hi,

wie gestallte ich es am besten, das ein User nicht einfach eine meiner unterseiten aufruft.?

zb liegt im ordner "test" die datei "test1.php".
diese wird normalerweise in der index.php einen ordner weiter oben includiert.
Ruft jetzt aber ein User:
meinedomain/test/test1.php
auf, will ich das er statt dessen wieder auf die index.php geleitet wird und die test1.php eingebunden wird, wie es sich gehört?

Muss ich das mit requier_once oder so veranstallten?

Danke im vorraus!
 
Zwei Vorschläge:

1. In der einbindenden Datei eine Konstante definieren und in der einzubindenden Datei prüfen, ob sie existiert, sonst umleiten.

2. Zugriffe auf das Unterverzeichnis per .htaccess (mod_rewrite) korrekt umleiten.

Gruß,
Björn
 
das mit dem umleiten wäre eine einfache möglichkeit.
aber wie funktioniert das mit dem mod_rewrite..?

ich hab den ordner:
inhalt
da ligt die index.php. die soll immer aufgerufen werden.
versucht jetzt ein user das script:
inhalt/seiten/test.php
aufzurufen, soll er auf inhalt/index.php umgeleitet werden.
auch wenn er versucht auf bilder zuzugreifen soll dies passieren.
Wie müsste ich das da in der htaccess gestallten?
Danke schonmal :D
 
Code:
RewriteEngine On
RewriteBase /inhalt
RewriteRule (.*) index.php?q=$1 [R=302,L]
Kommt in's Verzeichnis seiten und leitet /inhalt/seiten/file.ext auf /inhalt/index.php?q=file.ext um. Ungetestet, sollte aber funktionieren. Mehr dazu kannst du hier nachlesen: modrewrite.de | mod_rewrite & .htaccess (Apache Server)

Ich glaube aber, ich würde die erste Möglichkeit vorziehen. So in der Art:
PHP:
<?php
  if( !defined('INDEX') ) {
    header( 'Location: ../index.php?q=' . basename(__FILE__) );
  }
?>
Und in der index.php definierst du dann INDEX irgendwie.

Gruß,
Björn
 
Ich habe das so verstanden, dass alle Dateien, die inkludiert werden in einem Ordner liegen. Dort einfach eine .htaccess mit folgendem rein:
Code:
deny from all
Ansonsten im selben Ordner:
Code:
deny from all
<Files "index.php">
allow from all
</Files>
(ungetestet)
 
Dann aber noch
Code:
ErrorDocument 403 /inhalt/index.php
(eventuell auch mit Domain und Protokoll, bin mir nicht sicher), denn es soll ja auch auf die index.php weitergeleitet werden. Das wäre natürlich die einfachste Lösung, wenn es egal ist, welche Seite aufzurufen versucht wurde.
 
Zurück
Oben