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

RewriteRule Query wird nicht erstellt

Dieses Thema im Forum "Hosting & Webserver" wurde erstellt von guenter024, 4. Januar 2018.

  1. guenter024

    guenter024 Erfahrenes Mitglied

    Hallo,
    ich möchte mit mod_rewrite eine Regel erstellen.
    Beim Testen auf localhost funktioniert alles einwandfrei.
    Nach dem Hochladen auf den 1und1-Server geht nur noch die Regel 1, ab Regel 2 geht nichts mehr.
    Code:
    Code (Text):
    1. RewriteEngine on
    2. RewriteBase /
    3.  
    4. #Regel 1 funktioniert noch, example.php wird verarbeitet
    5. RewriteRule ^example$               example.php [L,NC,QSA]
    6.  
    7. #ab Regel 2 funktioniert es nicht mehr
    8. RewriteRule ^example/(.*)$          example.php?path1=$1 [L,NC,QSA]
    9. RewriteRule ^example/(.*)/(.*)$     example.php?path1=$1&path2=$2 [L,NC,QSA]
    example.php wird zwar weiterhin angezeigt, aber $_SERVER['QUERY_STRING'] bleibt auf dem Webserver leer.
    Hat jemand eine Idee woran dies liegen könnte?

    Ich hoffe jemand weiß Rat.

    Liebe Grüße

    PS:
    Konfiguration localhost: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.13
    Konfiguration 1und1: laut 1und1 ebenfallls Apache 2.4(?) sowie PHP 7.1.12
     
  2. guenter024

    guenter024 Erfahrenes Mitglied

    Folgendes ist mir aufgefallen:
    Die $_SERVER['REDIRECT_URL'] unterscheidet sich wie folgt:

    webhost:
    /example.php/path1/path2

    localhost:
    /example/path1/path2

    Woher kommt das?

    PS: Die $_SERVER['REQUEST_URI'] wird aber wieder bei beiden Servern identisch verarbeitet...
     
    Zuletzt bearbeitet: 5. Januar 2018
  3. guenter024

    guenter024 Erfahrenes Mitglied

    lol.
    jetzt habe ich einfach mal eine test.php erstellt und hochgeladen und mit example.com/test aufgerufen und die Seite wird einfach ausgeliefert.
    Was stimmt da beim 1und1 Server nicht?
     
  4. EuroCent

    EuroCent KlappStuhl 2.0

    htaccess die oben steht, ist es auch die die du hochgeladen hast, oder sind es nur beispiele?

    PS: Versuch mal ohne QSA :D

    Schau dir meine mal an :)

    Code (Text):
    1. <IfModule mod_rewrite.c>
    2.     RewriteEngine on
    3.  
    4.     RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    5.     RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    6.  
    7.     RewriteCond %{REQUEST_FILENAME} !-d
    8.     RewriteCond %{REQUEST_FILENAME} !-f
    9.     RewriteCond %{REQUEST_FILENAME} !-l
    10.     RewriteCond %{QUERY_STRING} ^(.*)$
    11.  
    12.     RewriteRule ^Home$ index.php [L]
    13.     RewriteRule ^Home$ index.php?site=home [L]
    14.  
    15.     RewriteRule ^Hilfe$ index.php?site=faq [L]
    16.  
    17.     RewriteRule ^Einloggen$ index.php?site=login [L]
    18.     RewriteRule ^Ausloggen$ index.php?site=logout [L]
    19.  
    20.     RewriteRule ^Kontakt$ index.php?site=contact [L]
    21.  
    22.     RewriteRule ^Registrieren$ index.php?site=register [L]
    23.  
    24.     RewriteRule ^Passwort-Vergessen$ index.php?site=passwd [L]
    25.     RewriteRule ^Passwort-Vergeben$ index.php?site=passnew [L]
    26.     RewriteRule ^Passwort-Vergeben/(.*)/(.*)$ index.php?site=passnew&mail=$1&sid=$2 [L]
    27.  
    28.     RewriteRule ^Profil-Bearbeiten$ index.php?site=edit_profile [L]
    29.  
    30.     RewriteRule ^Changelog$ index.php?site=changelog [L]
    31. </IfModule>
     
  5. guenter024

    guenter024 Erfahrenes Mitglied

    Hallo
    danke für deine Antwort.
    QSA hat damit aber erstmal nichts zu tun.
    Das Problem habe ich ja im Prinzip schon gefunden -> siehe
    mir fehlt nur noch die Lösung...

    Ich weiß nicht woher dieses .php kommt, wenn ich /example/path1/path2 aufrufe und dann daraus /example.php/path1/path2 wird.

    PS: der Code ist ein Beispiel.

    PS PS
    Habe herausgefunden, die .htaccess hat überhaupt keine Auswirkung darauf, es ist also zunächst nicht ein .htaccess-Problem. Die Datei test.php wird bei Aufruf von example.com/test auch ausgegeben, wenn überhaupt keine .htaccess existiert.
    Ausgabe der $_SERVER["REDIRECT_URL"] lautet /test.php
    Wo bzw. wie kann man das abstellen?
     
    Zuletzt bearbeitet: 5. Januar 2018
  6. guenter024

    guenter024 Erfahrenes Mitglied

    Großes Lob an den 1und1-Mitarbeiter :thumbup:

    Die Lösung:
    CheckSpelling off
     
  7. EuroCent

    EuroCent KlappStuhl 2.0

    Server-Einstellung? :)
     
  8. guenter024

    guenter024 Erfahrenes Mitglied

    muss das Thema wieder rausholen, das war nicht die Lösung für mein Problem.

    Der Server macht immer noch /example/path1/path2 zu /example.php/path1/path2 -> es wird kein Query von der .htaccess erstellt wie example.php?path1=$1&path2=$2 weil das pattern nicht stimmt.
    Irgendwo ist da der Wurm drin.
    Dabei wäre es doch eigentlich ganz einfach :confused:
    Das verrückte ist, localhost mit xampp macht alles wie gewünscht, da funktioniert alles.

    Wenn ich jetzt nicht bald eine Lösung finde gehe ich in Rente ... :rolleyes:
     
  9. EuroCent

    EuroCent KlappStuhl 2.0

    Naja localhost kannst Du auch nicht wirklich vergleichen, da in der Regel oft per XAMPP alles offen steht. :)
    Das heisst Du müsstest via phpinfo() prüfen

    Ich kann dir jedoch leider nicht sagen welche Einstellungen/Mods oder Faktoren da eine Rolle spielt oder das Mod_Rewrite... :)
     
  10. guenter024

    guenter024 Erfahrenes Mitglied

    Schade dass so wenig Antworten kommen, bin ich eventuell im falschen Forumsbereich?
    Yaslaw hat doch immer guten Rat, ist er hier nicht unterwegs?
    Huhu :)
     
  11. sheel

    sheel I love Asm Administrator

    Hi

    ist das ein Rootserver, oder nur "einfaches Hosting, oder...?
     
  12. guenter024

    guenter024 Erfahrenes Mitglied

    Ganz einfaches Hosting.
     
  13. EuroCent

    EuroCent KlappStuhl 2.0

    Hast Du denn mal geprüft wie es beim Localhost unter phpinfo() und dann auf deinem Hosting?
    Durchaus möglich dass dein Hoster etwas aktivieren/deaktivieren muss.
     
Die Seite wird geladen...