RewriteRule Query wird nicht erstellt


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:
RewriteEngine on
RewriteBase /

#Regel 1 funktioniert noch, example.php wird verarbeitet
RewriteRule ^example$               example.php [L,NC,QSA]

#ab Regel 2 funktioniert es nicht mehr
RewriteRule ^example/(.*)$          example.php?path1=$1 [L,NC,QSA]
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
 

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:

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?
 

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 ^^

Schau dir meine mal an :)

Code:
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^Home$ index.php [L]
    RewriteRule ^Home$ index.php?site=home [L]

    RewriteRule ^Hilfe$ index.php?site=faq [L]

    RewriteRule ^Einloggen$ index.php?site=login [L]
    RewriteRule ^Ausloggen$ index.php?site=logout [L]

    RewriteRule ^Kontakt$ index.php?site=contact [L]

    RewriteRule ^Registrieren$ index.php?site=register [L]

    RewriteRule ^Passwort-Vergessen$ index.php?site=passwd [L]
    RewriteRule ^Passwort-Vergeben$ index.php?site=passnew [L]
    RewriteRule ^Passwort-Vergeben/(.*)/(.*)$ index.php?site=passnew&mail=$1&sid=$2 [L]

    RewriteRule ^Profil-Bearbeiten$ index.php?site=edit_profile [L]

    RewriteRule ^Changelog$ index.php?site=changelog [L]
</IfModule>
 

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
Die $_SERVER['REDIRECT_URL'] unterscheidet sich wie folgt:

webhost:
/example.php/path1/path2

localhost:
/example/path1/path2
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:

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:
 

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... :)
 

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 :)
 

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.
 

Forum-Statistiken

Themen
272.356
Beiträge
1.558.615
Mitglieder
187.832
Neuestes Mitglied
SirrDansen