Sven Rautenberg: mod_rewrite und Übergabe von unbekannten query strings

Beitrag lesen

Moin!

ich benutze mod_rewrite um eine Verzeichnis-Struktur auf der Site zu simulieren.

Das ist schön.

Zusätzlich möchte ich alle evtl. eingehenden Get-Variablen (query strings) an das Script übergeben.

Das ist einfach.

Zuzeit sieht meine rewrite rule so aus:
RewriteCond %{QUERY_STRING} ^?(.+)$
RewriteRule ^(\w+)/(\w+).php$ index.php?dir=$1&script=$2&%1

Warum so kompliziert?

mod_rewrite tastet den Query-String nicht an, wenn du es nicht explizit sagst.

Aber die einfachste Lösung wäre vermutlich, dass du einfach alles, was auf "..html" endet (warum php nehmen, wenn es nicht notwendig ist?), auf "/index.php" umleitest - und die genauere Auswertung, welche URL denn tatsächlich abgerufen wurde, dann im Skript erledigst. Da bist du flexibler.

Oder mal auf die Kurzform gebracht:
RewriteRule ^..php$ index.php

index.php erfährt die angeforderte URL in $_SERVER['REQUEST_URI']. Daraus dann "Pfad" und "Seite" zu ermitteln dürfte kein Problem für dich darstellen. Die tatsächlich übergebenen URL-Parameter stehen ganz normal in $_GET.

- Sven Rautenberg

--
"Love your nation - respect the others."