Mod_Rewrite Variablen übernehmen
Guma
- webserver
Hallo zusammen,
die folgende URL-Eingabe soll verarbeitet werden:
www.domain.de/datei/100/200/
zu
www.domain.de/datei.php?a=100&b=200
Ich nutze folgendes mod_rewrite:
.htaccess
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$
RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2
Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?
Hier meine datei.php:
<?
if (! ($a=$_GET['a'])){$a="-";}
if (! ($b=$_GET['b'])){$b="-";}
echo $a;
echo $b;
?>
RewriteEngine on
Options +FollowSymlinks
RewriteBase /RewriteCond %{REQUEST_URI} datei/(.)/(.)/$
RewriteRule datei/(.)/(.)/$ /datei.php?a=$1&b=$2
>
> Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?
Die willst [QSA] verwenden
RewriteRule datei/(.\*)/(.\*)/$ /datei.php?a=$1&b=$2 [QSA]
mfg Beat
--
Surftipp:
[Die NATO](http://edvan.fadeout.ch/ref/?customerId=30&channelId=43&broadcastId=252&wide=)
Woran ich arbeite:
[X-Torah](http://www.elcappuccino.ch/cgi/tok.pl?extern=1-pub-com3306-1)
Plädoyer für eine alte Mystik
und Vers-Einteilung
in der Torah und der Apokalypse
Beat Stoecklin 2008
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Danke Beat
ich habs mit
+++++++++++++++++++++++++
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$
RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2 [QSA]
+++++++++++++++++++++++++
versucht, leider kein Ergebnis
hi Beat,
Die willst [QSA] verwenden
Obwohl es schon in der Übersetzung steht: Query String Append, wirds wohl immer noch falsch verstanden?
RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2 [QSA]
Die "fest codierten" Parameter a und b stehen in datei.php (Anm.) auf jeden Fall zur Verfügung, auch ohne [QSA]. Das Flag wird dann gebraucht, wenn:
* Die Quelle im Request_Uri Parameter UND das Ziel in der Rule vorgegebene Parameter hat UND beide Parameter im Ziel eine Rolle spielen. Dabei ist zu beachten, dass a und b vom Request_Uri nicht überschrieben werden, für a und b gilt das, was in der Rule vogegeben ist.
QSA wird nicht gebraucht, wenn:
* Die Quelle Parameter hat UND das Ziel keine in der Regel Vorgegebenen UND wenn nur die Parameter des Request_Uri gebraucht werden.
Schöne Grüße,
Horst Hammersack
(Anm.) Möglicherweise nicht in php, in Perl-Scriptn jedoch auf jeden Fall.
Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?
Was wird denn ausgegeben?
<?
$a ="defaultA";
if (isset $_GET['a']){
// Plausibilitätsprüfung...
$a=$_GET['a'];
}
echo $a;
?>
mfg Beat
Hallo Beat,
habe ~~~php
<?
$a ="defaultA";
if (isset ($_GET['a'])){
$a=$_GET['a'];
}
echo $a;
?>
eingesetzt (kommas beachten!)
bei mir wird defaultA ausgegeben.
Parameter werden nicht übertragen. ich prüfe weiter.
Hi!
Parameter werden nicht übertragen. ich prüfe weiter.
Ist Checkspelling aktiv? Bist du Administrator der Kiste und kannst ein RewriteLog einrichten, um nachzuschauen, ob das überhaupt zum Zuge kommt?
Lo!
Hi Guma!
Die RewriteCond matcht nicht auf die URL und ist zudem überflüssig.
Ebenso vermute ich, dass auch die RewriteRule nicht matcht, da auch hier der Slash am Anfang fehlt.
Desweiteren kann es helfen, alle Vorkommen von "/" zu maskieren. Ob das wirklich nötig ist, scheint nicht genau klar zu sein, allerdings kann es ja sein, dass irgendwelche Versionen von mod_rewrite damit Probleme haben/hatten.
MfG H☼psel