kostenloser Webspace werbefrei: lima-city


mod_rewrite URL weiterleitungs Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    siteplayer

    siteplayer hat kostenlosen Webspace.

    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]
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Versuchs mal ohne [NC]

    Bei mir funktioniert das so:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^([0-9a-z_\-]+)/$ $1.php
  4. Autor dieses Themas

    siteplayer

    siteplayer hat kostenlosen Webspace.

    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
  5. 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.
  6. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    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
  7. Autor dieses Themas

    siteplayer

    siteplayer hat kostenlosen Webspace.

    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
  8. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    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
  9. Thomasba, ich glaube deine RewriteRules würden zu Rekusrion führen. Er leitet ja immer von einem zum anderen. Hast du sie getestet?
  10. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    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
  11. Autor dieses Themas

    siteplayer

    siteplayer hat kostenlosen Webspace.

    @ nikic, hast du den ne Idee wie man es richtig machen könnte?
  12. @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 ;)
  13. Autor dieses Themas

    siteplayer

    siteplayer hat kostenlosen Webspace.

    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]
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!