mod_rewrite URL weiterleitungs Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
apache
aufrufen
code
datei
dokument
fehlfunktion
funktionieren
glauben
http
index
kleinschreibung
login
richtige bereich
test
tun
umsetzen
url
versuch
weiterleitung
zugriff
-
Also ich hoffe mal hie ist der richtige Bereich für meine Frage O.o
Ich möchte per mod_rewrite meine URL von script.php in /script/ umwandeln. Das habe ich auch umsetzen können, allerdings möchte ich nun das jede php Datei automatisch so umgewandelt wird. Wie kann ich das Umsetzen?
Mein bisheriger Code:RewriteRule ^([a-z0-9_-]+)/$ $1.php [NC]
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Versuchs mal ohne [NC]
Bei mir funktioniert das so:
RewriteEngine on RewriteBase / RewriteRule ^([0-9a-z_\-]+)/$ $1.php
-
Wenn ich jetzt aber die Seite index.php aufrufen würde bleibt sie Index.php sie soll aber index/ werden,. =(
Steht [NC] eigentlich nicht auch nur dafür das Groß- und Kleinschreibung beachtet werden soll?
Beitrag zuletzt geändert: 3.8.2010 17:30:26 von siteplayer -
siteplayer, dein regulärer Ausdruck wandelt index/ in index.php um. Das, was du willst ist nun kein Rewrite sondern ein Redirect. Ein Redirect erzwingst du mit dem [R] Flag.
-
Achso xD
Naja, das ist auch einfach, wenn man weiß was du willst ^^
Getestet und funktioniert:
RewriteRule ^([0-9a-z_\-]+).php$ $1/ [L,R]
Beitrag zuletzt geändert: 4.8.2010 0:25:26 von thomasba -
Es erscheint immer wieder folgende Fehlermeldung: Fehler:
Multiple Choices
The document name you requested (/login/) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:
* /login.php/ (common basename)
Please consider informing the owner of the referring page about the broken link.
Hier mal meine .htaccess-Datei:RewriteEngine on RewriteBase / RewriteCond %(HTTP_HOST) !^$ RewriteCond %{HTTP_HOST} ^([^.]+)\.siteplayer\.lima-city\.de$ RewriteRule ^(.*)$ http://siteplayer.lima-city.de/$1 [R=301] RewriteRule ^([0-9a-z\-]+).php$ $1/ [L,R]
Beitrag zuletzt geändert: 4.8.2010 10:42:35 von siteplayer -
Also so sollte das Funktionieren:
RewriteEngine on RewriteBase / # Weiterleitung (Sichtbare URL!) z.B. http://www.test.de/index.php -> http://www.test.de/index/ RewriteRule ^([0-9a-z_\-]+).php$ $1/ [L,R] # Interne Rewrite Regel, weißt Apache an, die URL !intern! umzuaschreiben RewriteRule ^([0-9a-z_\-]+)/$ $1.php
-
Thomasba, ich glaube deine RewriteRules würden zu Rekusrion führen. Er leitet ja immer von einem zum anderen. Hast du sie getestet?
-
nikic schrieb:
Thomasba, ich glaube deine RewriteRules würden zu Rekusrion führen. Er leitet ja immer von einem zum anderen. Hast du sie getestet?
stimmt -.-
so sollte es laut Manual aber funktionieren, was aber leider nicht der Fall ist -.-
RewriteEngine on RewriteBase / RewriteRule ^([0-9a-z_\-]+)/$ $1.php [skip=1] RewriteRule ^([0-9a-z_\-]+).php$ $1/ [L,R]
Beitrag zuletzt geändert: 5.8.2010 20:54:53 von thomasba -
@ nikic, hast du den ne Idee wie man es richtig machen könnte?
-
@thomasba: Nein, das sollte nicht funktionieren. Auch ein [L] hätte nicht geholfen. Das hat damit zu tun, dass mod_rewrite sich selbst rekurisv aufrufen wird.
@siteplayer: Ja, natürlich :D Versuch mal das:
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} \.php RewriteRule ^([0-9a-z_-]+).php$ $1/ [L,R] RewriteRule ^([0-9a-z_-]+)/$ $1.php [L]
Nicht getestet, theoretisch gesehen sollte es aber gehen ;) -
Es kommt mal wieder ne Fehlermeldung o.O
Zugriff verweigert!
Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgeschützt.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
Hab daraufhin mal DirectoryIndex angehängt.DirectoryIndex browser.php RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} \.php RewriteRule ^([0-9a-z_-]+).php$ $1/ [L,R] RewriteRule ^([0-9a-z_-]+)/$ $1.php [L]
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage