ubuntuusers.de

mod_rewrite

Status: Gelöst | Ubuntu-Version: Ubuntu 12.10 (Quantal Quetzal)
Antworten |

Taaz

Anmeldungsdatum:
10. Mai 2007

Beiträge: 48

Wohnort: Berlin

Hallo,

ich bin jetzt schon eine ganze Weile am herumprobieren mit mod_rewrite, aber nicht einmal die einfachsten Sachen funktionieren. Habe ich irgendwo Denkfehler?

Ich möchte ganz einfach anfangen mit folgender htaccess:

RewriteEngine On

RewriteBase /

RewriteRule ^(.+)$ test.php?test=$1 [L]

In der test.php habe ich einfach ein print_r($_GET); drin und erhalte immer folgendes:

Array ( [test] => test.php )

Meine Erwartung war, dass bei einem Aufruf von http://localhost/ubuntuusers dann in $_GET['test'] einfach "ubuntuusers" drin steht.

Ich hoffe, jemand kann mich aufklären.

Danke.

taaz

Taaz

(Themenstarter)

Anmeldungsdatum:
10. Mai 2007

Beiträge: 48

Wohnort: Berlin

So, habe es jetzt binbekommen:

RewriteEngine On

RewriteBase /

RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ load.php?a[]=$1&a[]=$2&a[]=$3 [qsappend,L]
RewriteRule ^([^/]+)/([^/]+)$ load.php?a[]=$1&a[]=$2 [qsappend,L]
RewriteRule ^([^/]+)$ load.php?a[]=$1 [qsappend,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ load.php?a[]=$1&a[]=$2&a[]=$3&endslash=true [qsappend,L]
RewriteRule ^([^/]+)/([^/]+)/$ load.php?a[]=$1&a[]=$2&endslash=true [qsappend,L]
RewriteRule ^([^/]+)/$ load.php?a[]=$1&endslash=true [qsappend,L]

Es lag also irgendwie am fehlenden qsappend, auch wenn mich der QueryString gar nicht interessiert. Die Lösung oben bildet (fast) alles ab, was ich ursprünglich umsetzen wollte, nämlich dass ich folgende URLs aufrufen kann:

http://loalhost/argument1
http://loalhost/argument1/
http://loalhost/argument1/argument2
http://loalhost/argument1/argument2/
http://loalhost/argument1/argument2/argument3
http://loalhost/argument1/argument2/argument3/

Die jeweiligen Argumente stehen im Array a von Index 1 - 3 (sofern vorhanden). An Stelle 0 steht komischerweise "load.php"

Das Flag endslash markiert, wenn die URL mit einem / endet. Die Weiterleitung von "URL ohne / am Ende" zu "URL mit / am Ende" realisiere ich dann in PHP, weil die auf Anhieb nicht mit mod_rewrite klappen wollte.

Viele Grüße taaz

Antworten |