1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Apache] mod_rewrite Probleme. Umsetzen von URLs.

Dieses Thema im Forum "PHP & Co." wurde erstellt von .holger, 07.08.08.

  1. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    Moin moin ich habe ein Problem mit einer Webseite. Ich möchte dort mit mod_rewrite (via .htaccess) die Variablennamen verstecken bzw. die URL einfacher machen. Dazu habe ich mir diese .htaccess in das entsprechende Verzeichnis gelegt (derzeit noch ein Unterverzeichnis meines privaten Webspaces):

    Code:
    RewriteEngine on
    RewriteRule ^([a-z])$ /index.php?orga=$1
    Da ich von RegEx wenig Ahnung habe, hab ich mir das Ganze mit dem Beispeil aus der Wikipedia zusammen gebastelt.

    Wenn ich jedoch nun http://www.meinedomain.de/unterverzeichnis/Blablub aufrufe wird nicht auf http://www.meinedomain.de/unterverzeichnis/index.php?orga=Blablub weitergeleitet bzw. umgebogen, stattdessen kommt ein 404. Der Direkte Aufruf von http://www.meinedomain.de/unterverzeichnis/index.php?orga=Blablub funktioniert wunderbar.

    Die .htaccess liegt in http://www.meinedomain.de/unterverzeichnis/ .
    Laut phpinfo(); ist mod_rewrite geladen.

    Kann mir da jemand weiterhelfen?

    Gruß Holger
     

    Anhänge:

    #1 .holger, 07.08.08
    Zuletzt bearbeitet: 07.08.08
  2. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Bau mal die RewriteRule n bissl um:

    Code:
    RewriteRule ^([a-z]*)$ /index.php?orga=$1
    Dein Beispiel müsste funktionieren wenn du genau einen kleinen Buchstaben an die URL heftest.
     
    .holger gefällt das.
  3. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    Naja, deinrewrite-mod leitet auf ne php weiter. in deinem text untendrunter erwähnst du aber ne html...
    da macht der apache schon nen unterschied...
     
    .holger gefällt das.
  4. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    @zeno leider kommt trotzdem ein 404 Error....
     
  5. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    Fehler im Text, es soll natürlich auf eine php umgeleitet werden.
     
  6. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    mh hilft es wenn du noch
    Code:
    RewriteBase /deinunterverzeichnis
    an zwote Stelle schreibst?
     
    .holger gefällt das.
  7. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Wenn die Datei in 'unterverzeichnis' kommt. Wenn sie in / liegt musst du noch zeno's Zeile einfügen. :)

    Code:
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?orga=$1
    
    das erlaubt Kleinbuchstaben von a bis z, Großbuchstaben von A bis Z, Unterstrich und Bindestrich.


    Vielleicht musst du es anpassen:
    Code:
    RewriteEngine on
    RewriteRule ^([a-z]+)$ index.php?orga=$1
    
    sofern du nur kleine Buchstaben zulassen willst. :)
     
    .holger gefällt das.
  8. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Ist ein Rewrite bei Deinem vHost überhaupt erlaubt? Nur das Modul zu aktivieren ist nicht genug. (Stichwort AllowOverride)
    Gruß Pepi
     
    .holger gefällt das.
  9. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    AllowOverride kann ich in der Ausgabe von phpinfo(); nicht finden. Hmm verdammt, na dann eben auf die eklige Art mit ?, = und so
     
  10. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    Versuch doch mal das hier:

    Options -Multiviews
    RewriteEngine On
    RewriteRule ^(.php)/ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^([a-zA-Z0-9]+)/ index.php?orga=$1 [QSA]
     
    .holger gefällt das.
  11. MrNase

    MrNase Champagner Reinette

    Dabei seit:
    11.01.05
    Beiträge:
    2.643
    Ging meins nicht? :)
     
  12. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    AllowOverride ist eine Apache Direktive. Die muß bei der Konfiguration des Hosts eingetragen sein, sonst kann es sein daß Deine .htaccess schlicht und ergreifend ignoriert wird.

    Hast Du schonmal eine simple Rewrite Rule ausprobiert um festzustellen ob das überhaupt funktiniert?
    Gruß Pepi
     
  13. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    leider nicht. Ich hab mich jetzt an den Support meines Hosters gerichtet. Mal sehen was der dazu sagt. Ich glaub ich hol mir bald nen vServer für mich, wo ich auch n bisschen mehr Freiheiten und so habe....
     
  14. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    ja, verdammt das klappt :) cool. Danke! Hat gestern nicht geklappt, weil ich einen Biindestrich mit übergeben habe und das ja in der RewriteRule nicht abgedeckt war. Jetzt geht alles :) supi :)
     
  15. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    Freut mich, das es nun klappt. Danke fürs Karma ;)
     
  16. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo

    Ich hatte auch so ein Problem, wo immer ein Fehler kam, obwohl es eigentlich richtig war.
    Die Lösung des Problems war, $1 in $0 umzuwandeln.
    Vielleicht ist das hier ein einfacherer Weg.

    wapplegraph
     
  17. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    Ich meld mich nochmal...weil ich jetzt nen ähnliches Problem habe.
    Von heute auf morgen taten es die RewriteRules von meinem einen vHost nicht mehr. Beim anderen geht alles super, aber beim einen scheinen die RegExps falsch zu sein. Ich frag mich wieso, da sie die Tage noch liefen, nur jetzt nicht mehr. (Eigentlich seit dem letzten Apache-Update).

    Jetzt versucht der Apache, die URL direkt aufzurufen, ohne sie zu rewriten. Dass das nicht klappt, ist klar.
    Mag mal jemand nen Blick drauf werfen?

    Code:
    RewriteEngine On
    RewriteBase /
    RewriteRule tags/(.*)/$ showlinks.php?tag=$1 [NC]
    RewriteRule (.*)\.html$ $1.php
    RewriteRule register/$ user.php?register=true
    RewriteRule login/$ user.php
    RewriteRule addlink/(.*)$ addlink.php?id=$1
    
    Die Direktiven im vHost sehen folgendermaßen aus:

    Code:
    <Directory /home/tatonka/public_html/harvo>
    Order Deny,Allow
    Allow from all
    AllowOverride All
    # Don't show indexes for directories
    # Options -Indexes
    Options +FollowSymLinks +SymLinksIfOwnerMatch
    Options -MultiViews
    </Directory>
    
     

Diese Seite empfehlen