phpbar.de logo

Mailinglisten-Archive

[php] mod_rewrite Problem

[php] mod_rewrite Problem

Olaf Gleba list at creatics.de
Fre Aug 22 20:54:11 CEST 2003


Hallo Albin,

Am 22.08.2003 17:39 Uhr schrieb "Albin Blaschka" unter
<albin.blaschka at sbg.ac.at>:
 
> Jetzt moechte ich mod_rewrite verwenden,
> also ich moechte urls  so angeben: http://www.domain.at/var1/wert/var2/wert
> statt
> http://www.domain.at?var=wert usw.

Beispiele...

1.
Original Aufruf: 
http://www.domain.at/index.php?var=wert

Rule:
RewriteRule ([a-zA-Z0-9]+)\.html index.php?var=$1

Aufruf nach Rule:
http://www.domain.at/xxx.html (xxx wird durch die var ($1) gesetzt)

Bewirkt:
Alles, egal was du jetzt als "xxx" im Aufruf hast, bezieht sich auf den
Wert, den du durch die "var=$1" setzen willst. Auf Seitenaufrufe bezogen,
macht dieses Beispiel Sinn, wenn du 1 index Datei hast, in die du bestimmte
Seitenteile includieren willst (sodass du eigentlich immer die index
aufrufst und an verschiedenen Stellen in der Datei andere includierst).
Durch z.B ein 

switch($_GET['var']) {
case 'beispieldatei ohne suffix':
$file = 'beispieldatei';
break;
... etc.
}

und ein entsprechendes "include"
<?php 
include_once("$file.php");
?>
irgendwo in der index.php, wird bei entsprechender Übergabe der var die
entsprechende Seite geladen.

Gibst du also http://www.domain.at/beispieldatei.html ein wird in die
index.php die (physikalisch vorhandene!) Datei "beispieldatei.php" geladen
(die natürlich nur den z.B den body enthält).


2.
Original Aufruf: 
http://www.domain.at/index.php?s=wert1&rubrik=wert2&id=wert3

Rules:
RewriteCond %{REQUEST_URI} ^/beispielordner/
RewriteRule ([0-9]+)/([0-9]+)/([0-9]+)\.html index.php?s=$1&rubrik=$2&id=$3

Aufruf nach Rule:
http://www.domain.at/beispielordner/wert_von_s/wert_von_rubrik/wert_von_id.h
tml

Mit der RewriteCond kannst du kanalisieren, das folgende RewriteRule sich
nur auf Aufrufe mit "/beispielordner/" beziehen. Willst du das nicht, setze
in der RewriteCond einfach "^/ ", so dass sich alles auf den root bezieht.
Die RewriteCond ist notwendig um Ordnerstrukturen in der RewriteRule
abbilden zu können.

Beachte, das die erlaubten Zeichen im Bsp. 2 ausschließlich Zahlen sind
(Kannst du ändern, wie du willst und je nachdem, was in deinen Pfaden
vorkommt...) 

mach kein copy&paste !

gruss
olaf


-- 
Olaf Gleba | creatics media&systems
http://www.creatics.de | mailto:og at creatics.de


php::bar PHP Wiki   -   Listenarchive