mod_rewrite
gast
- webserver
Hi,
kann mir jemand helfen: Meine Absicht ist es, dass wenn jemand z.B. www.domain.net/de/foo/bar.php eingibt, dass die Anfrage dann auf index.php?lang=de&folder=foo&file=bar "umgeleitet" wird.
Ich habe schon vieles ausprobiert, es wird aber immer ein Internal Server Error ausgegeben. Was ist also hier falsch:
RewriteEngine on
RewriteBase /ordner1
RewriteRule ^/ordner1/(.*)/(.*).php$ /ordner1/index.php?lang=$1&folder=$2&file=$3
vielen Dank für eure Hilfe
Hallo gast,
Ich habe schon vieles ausprobiert, es wird aber immer ein Internal Server Error ausgegeben.
Was steht im error-log?
Was ist also hier falsch:
RewriteEngine on
RewriteBase /ordner1
RewriteRule ^/ordner1/(.*)/(.*).php$ /ordner1/index.php?lang=$1&folder=$2&file=$3
Das hier bewirkt zwar nicht das, was Du willst, jedoch produziert es auch keinen Internal Server Error bei mir.
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(.*)/(.*).php$ index.php?lang=$1&folder=$2&file=$3
sollte das erreichen, was Du willst. Eventuell würde ich noch
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(.*)/(.*).php$ index.php?lang=$1&folder=$2&file=$3 [QSA]
machen, damit aufrufe wie
http://www.invalid/de/foo/bar.php?hallo=ciao
auch funktionieren und in
index.php?lang=de&folder=foo&file=bar&hallo=ciao umgewandelt werden.
(im ersten fall würde lediglich index.php?lang=de&folder=foo&file=bar rauskommen)
Viele Grüße,
Christian
Hi,
erst einmal vielen Dank für die schnelle Hilfe. Ich habe deine Version ausprobiert und sie funktioniert wunderbar - meistens. Manchmal dauert es ewig (bis zu über 1 min), bis der Server die Seite ausgibt. Woran liegt das? Kann es daran liegen, dass er die Bilder nicht findet, die auf der Seite eigentlich angezeigt werden sollten? Ich habe hier mal das mod-rewrite-error-log (RewriteLogLevel 8) nach einem einmaligen Aufruf von "localhost/ordner1/verbindungen/a.php". Ist zwar ein bisschen lang, habe aber schon unwichtiges weggekürzt:
--
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/a.php -> de/verbindungen/a.php
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/a.php'
(2) [per-dir d:/files/htdocs/ordner1/] rewrite de/verbindungen/a.php -> /ordner1/index.php?lang=de&folder=verbindungen&file=a
(3) split uri=/ordner1/index.php?lang=de&folder=verbindungen&file=a -> uri=/ordner1/index.php, args=lang=de&folder=verbindungen&file=a
(2) [per-dir d:/files/htdocs/ordner1/] trying to replace prefix d:/files/htdocs/ordner1/ with /ordner1/
(1) [per-dir d:/files/htdocs/ordner1/] internal redirect with /ordner1/index.php [INTERNAL REDIRECT]
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/index.php -> index.php
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'index.php'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/index.php
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/lo_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/lo_big.gif -> de/verbindungen/bilder/system/lo_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/lo_big.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/white_grey.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/white_grey.gif -> de/verbindungen/bilder/system/white_grey.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/white_grey.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/lu_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/lu_big.gif -> de/verbindungen/bilder/system/lu_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/lu_big.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/bilder/system/logo_small_new.gif -> bilder/system/logo_small_new.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'bilder/system/logo_small_new.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/bilder/system/logo_small_new.gif
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/pixel.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/pixel.gif -> de/verbindungen/bilder/system/pixel.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/pixel.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/ru_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/ru_big.gif -> de/verbindungen/bilder/system/ru_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/ru_big.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
(3) [per-dir d:/files/htdocs/ordner1/] add path-info postfix: d:/files/htdocs/ordner1/de/verbindungen/bilder -> d:/files/htdocs/ordner1/de/verbindungen/bilder/system/ro_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] strip per-dir prefix: d:/files/htdocs/ordner1/de/verbindungen/bilder/system/ro_big.gif -> de/verbindungen/bilder/system/ro_big.gif
(3) [per-dir d:/files/htdocs/ordner1/] applying pattern '^(.*)/(.*)/(.*).php$' to uri 'de/verbindungen/bilder/system/ro_big.gif'
(1) [per-dir d:/files/htdocs/ordner1/] pass through d:/files/htdocs/ordner1/de/verbindungen/bilder
--
In der .htaccess steht folgendes:
--
RewriteEngine on
RewriteBase /igor/
RewriteRule ^(.*)/(.*)/(.*).php$ /igor/index.php?lang=$1&folder=$2&file=$3 [QSA]
--
Was mache ich also, damit der Server im richtigen Verzeichnis nach den Bildern sucht? Es muss doch eine Möglichkeit geben.
Und kannst du mir auch noch sagen, ob es irgendwo eine Auflistung der Attribute wie [QSA] gibt?
Vielen Dank
gast
Hallo,
Und kannst du mir auch noch sagen, ob es irgendwo eine Auflistung der Attribute wie [QSA] gibt?
http://httpd.apache.org/docs/mod/mod_rewrite.html und dort nach
dem Begriff [flags] suchen.
Viele Grüße,
Stefan
Danke für den Link! Mit ein bisschen überlegen hätte ich eigentlich selbst drauf kommen müssen ;-)
gast
Hallo,
kann mir jemand helfen: Meine Absicht ist es, dass wenn jemand z.B. www.domain.net/de/foo/bar.php eingibt, dass die Anfrage dann auf index.php?lang=de&folder=foo&file=bar "umgeleitet" wird.
würde ich ganz ähnlich wie Christian schreiben:
RewriteEngine on
RewriteRule ^/([^/]*)/([^/]*)/([^.]*).php$ http://www.example.net/index.php?lang=$1&folder=$2&file=$3
Viele Grüße,
Stefan