Mod Rewrite läuft lokal aber online nicht

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Mod Rewrite läuft lokal aber online nicht

Beitragvon Waldgeist » 11.04.2010 21:43

Hallo ihr,

ich stehe gerade vor einem mir unerklärlichem Problem. Ich habe ein kleines Projekt bei dem die URL's umgeschrieben werden.
Lokal läuft das ganze problemlos. Sobald ich es aber ins Netz stelle geht das umschreiben nicht mehr und der springt in den ErrorDocument Teil (den ich testweise erst mal ausgeklammert habe).

Der Code der .htaccess Datei ist der folgende:

Code: Alles auswählen
Options +FollowSymlinks
RewriteEngine On

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

RewriteRule ^([^/]*).htm$ index.php?temp=$1 [QSA,L]
RewriteRule ^([^/]+)$ $1 [QSA,L]
RewriteRule ^([^/]+)/([^/]*).htm$ $1?id=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/]*)$ $1?action=$2 [QSA,L]

#ErrorDocument 404 http://www.rezensio.de/


Anschauen kann man sich das ganze zum Beispiel auf der Seite:
http://www.rezensio.de/film

Dort kommt dann die Meldung: Objekt nicht gefunden


Und am Server sollte es nicht liegen. Auf dem selben Server laufen auch andere Seiten die per Mod Rewrite umgeschrieben werden.

Ich habe gerade nicht mal mehr eine Idee wo ich ansetzen soll um das Problem zu lösen.
Wenn also irgend wer irgend einen Ansatz oder eine Idee hat freue ich mich sehr darüber.
Vielen Dank für eure Hilfe...
Waldgeist
.
.
 
Beiträge: 29
Registriert: 15.12.2008 19:56

Beitragvon Waldgeist » 14.04.2010 11:11

So, ich habe das Problem ein wenig eingegrenzt... Das umschreiben grundlegend funktioniert, es gibt nur Probleme wenn eine URL umgeschrieben werden soll die das folgende Format hat:
Code: Alles auswählen
www.rezensio.de/film


Das soll ja dann umgeschrieben werden auf rezensi.de/film.php
Und da gibt er dann einen Fehler aus:
Internal Server Error


Nur was an dem Umschreiben nicht funktionieren soll ist mir unklar ... :(
Hat jemand einen Tipp oder Ratschlag ?
Und warum geht es lokal problemlos, online aber nicht?
Waldgeist
.
.
 
Beiträge: 29
Registriert: 15.12.2008 19:56

Beitragvon Waldgeist » 14.04.2010 17:04

Ach ja, in meinem Code-Auszug oben hat sich natürlich ein kleiner Fehler eingeschlichen.
Code: Alles auswählen
RewriteRule ^([^/]+)$ $1 [QSA,L]

muss natürlich heißen
Code: Alles auswählen
RewriteRule ^([^/]+)$ $1.php [QSA,L]


Aber das ändert dennoch nichts. Der Fehler bleibt bestehen und der Server meldet mit einen Fehler (Internal Server Error).
Könnte es sein, dass ich nicht auf $1.php verweisen darf sonder eine feste Datei angegeben werden muss?
Weil die selbe Anweisung in der Variante:
Code: Alles auswählen
RewriteRule ^([^/]+)$ index.php?id=$1 [QSA,L]

gibt mir in der index.php bei echo "$_GET[id]"; die gewünschte Rückgabe zurück ...

Verzweifeln kann man an den Rewrite Funktionen :twisted: :roll:
Waldgeist
.
.
 
Beiträge: 29
Registriert: 15.12.2008 19:56

Beitragvon Waldgeist » 18.04.2010 18:04

So, ich habe jetzt grundlegend noch mal neu mit dem Aufbau der Regeln angefangen.
Und bin zu folgender funktionierender Variante gekommen:

Code: Alles auswählen
Options +FollowSymlinks
RewriteEngine On

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

RewriteRule ^([^/]+)/([^/]+)\.htm$ $1.php?id=$2 [QSA,L]
RewriteRule ^([^/]+)\.htm$ index.php?temp=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]*)$ $1.php?action=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ $1.php [QSA,L]

ErrorDocument 404 http://www.rezensio.de/
ErrorDocument 500 http://www.rezensio.de/


Was mir nun allerdings noch sehr unklar ist:

Warum muss ich die dritte Zeile noch mal setzen? Der soll doch eigentlich automatisch in die letzte RewriteCond gehen...
Code: Alles auswählen
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]*)$ $1.php?action=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ $1.php [QSA,L]


Vielleicht kann mir das ja noch jemand beantworten.
Vielen Dank und viele Grüße von Rezensio
Waldgeist
.
.
 
Beiträge: 29
Registriert: 15.12.2008 19:56


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron