Grundsätzlich ist das Verwirren des Webservers nicht unbedingt zu empfehlen...
Folgende Rewrite-Direktiven sollten Dein Problem lösen:
Angenommen http://yourdomain.tld/foo/bar/baz/ wird vom Server angefordert (Achtung bei den Slashes):Code:RewriteCond %{REQUEST_URI} ^(.*)/$ RewriteCond %{DOCUMENT_ROOT}%1.php -f RewriteRule ^(.*)/$ $1.php [L]
- Zeile 1: die REQUEST_URI (foo/bar/baz/) wird vom Indianer anhand der Regular-Expression überprüft und in 2 Teile zerlegt:
- ^(.*) = /foo/bar/baz -> entspricht dem ersten Teil
- /$ = / -> der letzte Slash, entspricht dem 2ten Teil
- Zeile 2: der erste Teil (=%1) wird um die Dateiendung .php erweitert und mit dem DocumentRoot (in diesem Bsp: /var/www) des Servers auf eine existierende Datei (-f) überprüft -> /var/www/foo/bar/baz.php
Existiert die Datei so wird mit Zeile 3 fortgefahren - im negativen Fall wird an dieser Stelle abgebrochen.- Zeile 3:: existiert die Datei aus Zeile 2, so wird diese umgeschrieben - siehe RegEx aus Zeile 1. Der Server liefert die Datei /var/www/foo/bar/baz.php aus.
Ergebnis 1 bis 2 von 2
- 16.10.2009, 00:47 #1
Per .htaccess verhindern, dass Unterverzeichnis einzelner Datei vorgezogen wird?
Hallo,
ich hab per .htaccess mit folgendem Code erreicht, dass eine /datei.php auch per /datei (ohne Dateiendung) aufgerufen werden kann.
Das funktioniert so weit auch ganz gut. Wenn ich allerdings ein Verzeichnis /datei/ im gleichen übergeordneten Verzeichnis erstelle, zieht der Server bei der Eingabe von http://domain.tld/datei in jedem Fall das Verzeichnis der Datei vor, wodurch es keine Möglichkeit mehr gibt die Datei datei.php ohne Dateiendung zu erreichen.Code:RewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L]
Nun habe ich folgenden Code gefunden, der das Problem beheben soll:
Aus irgendeinem Grund funktioniert dieser Code jedoch nicht. Es kommt zwar keine Fehlermeldung, aber die Wirkung ist gleich Null.Code:RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.*)/$ RewriteCond %1 -U RewriteRule ^(.*)$ %1 [L,R]
Kennt jemand vielleicht eine Möglichkeit, dass der Server bei der Eingabe von http://domain.tld/datei auch wirklich die Datei aufruft und nicht das Unterverzeichnis? Habs schon in zwei anderen Foren versucht, relativ erfolglos, obwohl das Problem recht dringend ist. Vielen Dank
- 17.10.2009, 23:21 #2
Ähnliche Themen
-
Wie verhindern Sportler, dass entdeckt wird das sie gedopt haben
Von neviani22 im Forum CaféAntworten: 19Letzter Beitrag: 15.12.2008, 18:09 -
Verhindern dass Macbook Pro Bildschirm schwarz wird bei Fulls. Games auf ext.Monitor?
Von Birnen Bobby im Forum DisplaysAntworten: 4Letzter Beitrag: 08.02.2008, 00:06 -
Bei Fullscreen(-Spiel) verhindern, dass zweiter Monitor schwarz wird?
Von MisterMankind im Forum DisplaysAntworten: 5Letzter Beitrag: 22.06.2007, 15:50 -
Wie kann ich verhindern, dass iTunes den Bibliothgeks-Ordner automatisch ändert?
Von surphaze im Forum iTunes (Mac only!)Antworten: 2Letzter Beitrag: 11.03.2006, 21:51 -
Verhindern, dass Daten vom Rechner kopiert werden können
Von kimjongil im Forum OS XAntworten: 9Letzter Beitrag: 12.02.2006, 21:47





Zitieren
