RewriteRules

Alles, was den Apache betrifft, kann hier besprochen werden.

RewriteRules

Postby magicslider » 23. January 2010 16:54

Hallo,

ich habe ein Forum auf Apache2.2x (Debian Lenny) übernommen, wo die Links derzeit so aussehen:

domain.de/index.php?topic_name=Einbringen-von-Erdw%C3%A4rmesonden&topic=409.0
domain.de/index.php?board_name=Architektur-%7C-Planung-%7C-%C3%9Cberwachung&board=10.0

(läuft aber auch ohne die .0 am Ende, allerdings muss ich noch nach schauen warum die Entwickler mit der .0 arbeiten)

ich möchte nun das urlencode() ganz entfernen und nur mit einem preg_replace() arbeiten.

Das Ganze stelle ich mir dann so vor. (php ist aber auch nicht mein Porblem)

domain.de/topic/409/einbringen-von-erdwaermesonden.html
domain.de/board/10/architektur-planung-ueberwachung.html

Der virtuelle Host sieht vom Verzeichnis her so aus:

<Directory /home/www/domain.de/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

wo kommt nun die rewrite rule hin ?

DirectoryIndex index.php
RewriteEngine On

wie kann ich denn Bedingungen einbauen ?

ich müsste ja erst einmal prüfen ob ein ? drin ist, dann müsste der (alte) Link so bleiben.
Weiter müsste ich prüfen, ob der Link eine topic oder board ist.
Dann die ID filtern, ggf. mit .0 angehängt.

Nun habe ich von den RewriteRules Null Ahnung.

Geht sowas überhaupt und wenn wie ?

tatsächlich müsste der Apache dann folgendes übermitteln:

domain.de/index.php?topic=409.0
domain.de/index.php?board=10.0

Ich danke schon einmal für jede Hilfe.

magicslider
magicslider
 
Posts: 1
Joined: 23. January 2010 16:37

Re: RewriteRules

Postby Nobbie » 23. January 2010 17:43

magicslider wrote:wo kommt nun die rewrite rule hin ?


Entweder dort innerhalb des <Directory> Blocks (egal wo) oder in einer .htaccess Datei im htdocs Ordner.

magicslider wrote:wie kann ich denn Bedingungen einbauen ?


Bedingungen werden mit RewriteCond formutliert.

magicslider wrote:Nun habe ich von den RewriteRules Null Ahnung.


Dann solltest Du sicher erst einmal ein paar Tutorials und die Apache Dokumentation zu mod_rewrite durcharbeiten.

magicslider wrote:Geht sowas überhaupt und wenn wie ?


Bin mir nicht sicher, ob das alles so geht. Das hängt auch davon ab, wie die Zielsyntax aussieht und ob die entsprechenden Bedingungen überhaupt formulierbar sind. Diese "Sprache" ist bei weitem nicht so mächtig wie ein PHP Konstrukt mit beliebigen booleschen Ausdrücken und Variablen.

Du bist ja nicht der allererste, der so ein System umsetzt. Allerdings wird in Wordpress beispielsweise einfach alles ohne Änderung auf index.php geleitet und es wird dann innerhalb von PHP entschieden, wo es lang geht (da wird dann die eingebene URL analysiert), anstatt innerhalb von mod_rewrite. Die werden wohl wissen, warum sie das in PHP machen, und nicht mit mod_rewrite (bzw. nur die generelle Umlenkung). D.h.aber nicht, dass gar nichts geht - das hängt eben davon ab, wie komplex Deine Vorstellungen sind. Aber so wie ich es ansatzweise verstehe, wird es nicht so einfach werden, vielleicht sogar unmöglich (mit mod_rewrite).
Nobbie
 
Posts: 8762
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests