Probleme mit mod_rewrite
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
bestimmte verzeichnisse
code
dank
einsetzen
elektronik
existieren
existierenden dateien
funktionieren
genau umsetzen
http
index
klappen
nachsetzen
problem
string
test
umleitung
url
verzeichnis
-
Hy, ich will meine Seite auf ein anderes URL-Desing umschreiben, das beim CMS auch verwendet wird. Dazu will ich mod_rewrite benutzen. Das problem ist aber, das ich auch nach längerem Googlen, keine ahnung habe wie ich das genau umsetzen soll. PHP-Seitig hab ich schon eine unterstützung eingebaut, die auch funktioniert, nur mit der Umleitung wills noch nicht klappen.
Das Ziel ist dabei, einen URL wie www.eap.lima-city.de/elektronik in www.eap.lima-city.de/?site_direction=elektronik umzuwandeln. Also der Querry site_direction soll alles nach www.eap.lima-city.de/ bekommen. Eigentlich nicht so schwer, aber ich bekomme es einfach nicht fertig. Auserdem sollen alle Querrys mitgegeben werden, wenn welche existieren, und exestierende Verzeichnisse und Dateien ausgeschlossen werden.
Zurzeit schaut der Betreffende code von mir so aus:
RewriteEngine On RewriteRule ^(.*)/$ /?site_direction=$1[L]
der funkt aber nicht, hab ihn auserdem zurzeit deaktiviert, da es dadurch probleme mit piwik gab.
mfg. eap -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
RewriteEngine On RewriteRule ^([^/]*)/$ /index.php?site_direction=$1 [L]
So?
Ich glaube sogar, dass es so geht:
RewriteRule (.*)/ index.php?site_direction=$1
Dennoch sollte
RewriteRule ^(.*)/$ index.php?site_direction=$1 [L]
funktionieren.
Beitrag zuletzt geändert: 13.6.2011 14:04:53 von fabo -
nö, habs raufgeladen
EDIT:
Problem gefunden:
man muss eine slash nachsetzen: www.eap.lima-city.de/elektronik/, hab ich bei mod_rewrite einsetzen müssen, da ansonsten ein umleitungsfehler auftrat, weil exestierende Datein nicht berücksichtigt wurden. Das müsste also behoben werden, da leute (wie ich) gerne den letzten slash weglöschen oder vergessen.
Beitrag zuletzt geändert: 13.6.2011 14:09:11 von eap -
Das Problem mit dem nachfolgenden Slash exestiert aber immer noch, und querrys werden auch nicht übergeben. hat da noch jemand eine lösung?
mfg. eap
Beitrag zuletzt geändert: 13.6.2011 14:25:16 von eap -
RewriteRule ^(.*)/?$ index.php?site_direction=$1 [QSA]
Aufruf http://xxxx.tld/abc/?querystring=test ergibt
["site_direction"]=> string(4) "abc/" ["querystring"]=> string(4) "test"
Aufruf http://xxxx.tld/abc?querystring=test ergibt:
["site_direction"]=> string(3) "abc" ["querystring"]=> string(4) "test"
Aufruf http://xxxx.tld/abc ergibt:
["site_direction"]=> string(3) "abc"
Problem an der ganzen Sache ist, dass die ganze Rewriterule ohne abschließendes Slash oder Dateiendung ausnahmslos alles umleitet (logischerweise).
Es muss irgendetwas vor oder nach dem Namen kommen, damit das Ganze unique bleibt und nicht wirklich alles umgeleitet wird (auch bei existierenden Dateien). Einen anderen Weg gibt es meines Wissens nach nicht.
Beitrag zuletzt geändert: 13.6.2011 19:34:28 von fabo -
Danke, dass funkt, gibt es villeicht eine mögichkeit, bestimmte Verzeichnisse auszuschließen? Dann müsste das ganze funktionieren
mfg. pointhi
Beitrag zuletzt geändert: 13.6.2011 21:47:59 von eap -
Vielleicht so...?
RewriteRule ^(Verzeichnis1|Verzeichnis2|Verzeichnis3) - [L]
Beitrag zuletzt geändert: 13.6.2011 21:54:06 von fabo -
Danke, jetzt funkt alles. Der CODE ist:
RewriteEngine On RewriteRule ^(css|img|js|programms) - [L] RewriteRule ^(.*)/?$ index.php?site_direction=$1 [QSA]
falls wer das mal brauchen würde
mfg. eap -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage