probleme mit $2

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

probleme mit $2

Beitragvon dark » 25.09.2007 17:53

hallo leute,

die suchfunktion dieses forums funktioniert bei mir irgendwie nicht!!!
selbst die suche nach: RewriteRule bringt kein ergebnis????



ich hab folgendes problem:

aktuell:
seite.php4?select=Abc1
dazu:

RewriteEngine On
RewriteBase /

RewriteRule seite_([a-zA-z0-9]+).html$ seite.php4?select=$1 [QSA,L]
...funktioniert!
(query['select'] = Abc1)


aber:
seite.php4?select=Abc1&name=EFg3

mit der erweiterung der .htaccess:
RewriteRule seite_([a-zA-z0-9]+)._([a-zA-z0-9]+).html$ seite.php4?select=$1&name=$2 [QSA,L]
verschwindet der 2.query (name) und dessen wert wird an den 1.query angehängt
(query['select'] = Abc1_EFg3)
fatale auswirkung ;)

was mache ich falsch?
hilfe wäre cool...

...dark
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52

Beitragvon Erik » 29.09.2007 23:51

Wie lautet denn die eigentliche Anfrage? seite_ABc1_EFg3.html?
Erik
.
.
 
Beiträge: 25
Registriert: 28.03.2006 16:30
Wohnort: Freiburg

die frage lautet:

Beitragvon dark » 30.09.2007 02:17

warum verschwindet der 2.query (name = EFg3)
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52

Beitragvon Erik » 30.09.2007 11:36

Wie lautet die URL die umzuschreiben ist?
Erik
.
.
 
Beiträge: 25
Registriert: 28.03.2006 16:30
Wohnort: Freiburg

beispiel:

Beitragvon dark » 30.09.2007 12:15

die URL lautet:
seite.php4?select=Katzen&name=Mompelmann


und werden soll daraus:
seite_Katzen_Mompelmann.html

vielen dank für dein interesse...
...dark
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52

Beitragvon Erik » 30.09.2007 12:30

Dann probier mal
Code: Alles auswählen
RewriteRule seite_([a-zA-z0-9]+)_([a-zA-z0-9]+)\.html$ seite.php4?select=$1&name=$2 [L]


Der Punkt ist Metazeichen und muß escaped werden...

Ciao
Erik
.
.
 
Beiträge: 25
Registriert: 28.03.2006 16:30
Wohnort: Freiburg

lösung

Beitragvon dark » 30.09.2007 13:27

dein code hat leider auch nicht funktioniert :(


ich verwende nun als 2.separator einen bindestrich (keinen unterstrich)

RewriteRule ^gnadenhof_bewohner_([a-zA-z0-9]+)-([a-zA-z0-9]+)\.html$ gnadenhof_bewohner.php4?select=$1&name=$2 [QSA,L]

....das klappt komischerweise...
vielen dank für deine mühe :)

...dark
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52

Beitragvon Erik » 30.09.2007 14:16

Ja, seltsam. Der Unterstrich sollte eigentlich auch funktionieren, zumindest laut http://www.regexlab.com/en/regref.htm
'Letters, numbers, the underline, and punctuations with no special definition are "common characters".'

Vielleicht weiß einer der Experten hier ja mehr...
Erik
.
.
 
Beiträge: 25
Registriert: 28.03.2006 16:30
Wohnort: Freiburg

danke

Beitragvon dark » 30.09.2007 15:13

...ja, is wohl ein seltsames problem...

wenigstems läuft es jetzt...und unterstrich, oder bindestrich ist mir nicht wichtig...
hauptsache die suchmaschinen kommen damit klar ;)

nochmals danke!!

lg
--
dark
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52

Beitragvon Erik » 30.09.2007 16:52

Erik
.
.
 
Beiträge: 25
Registriert: 28.03.2006 16:30
Wohnort: Freiburg

sehr seltsam...

Beitragvon dark » 30.09.2007 17:32

hab folgendes probiert:

----------------------------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} /t([a-zA-z0-9]+),([a-zA-z0-9]+)-(.*).html
RewriteRule (.*) /gnadenhof_bewohner.php4?select=%1&name=%2 [L,QSA]

test: gnadenhof_bewohner,Hunde-Benni.html
Error 404 - Not found
----------------------------------------------------------------------------


----------------------------------------------------------------------------
RewriteCond %{gnadenhof_bewohner} /t([a-zA-z0-9]+),([a-zA-z0-9]+)-(.*).html
RewriteRule (.*) /gnadenhof_bewohner.php4?select=%1&name=%2 [L,QSA]

test: gnadenhof_bewohner,Hunde-Benni.html
Error 404 - Not found
----------------------------------------------------------------------------

----------------------------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} /t([a-zA-z0-9]+)-([a-zA-z0-9]+)-(.*).html
RewriteRule (.*) /gnadenhof_bewohner.php4?select=%1&name=%2 [L,QSA]

test: gnadenhof_bewohner-Hunde-Benni.html
Error 404 - Not found
----------------------------------------------------------------------------

....verwende nun wieder:

RewriteEngine On
RewriteBase /

RewriteRule ^gnadenhof_bewohner_([a-zA-z0-9]+)\.html$ gnadenhof_bewohner.php4?select=$1 [QSA,L]
RewriteRule ^gnadenhof_bewohner_([a-zA-z0-9]+)-([a-zA-z0-9]+)\.html$ gnadenhof_bewohner.php4?select=$1&name=$2 [QSA,L]
RewriteRule ^(.*).html$ $1.php4

test: gnadenhof_bewohner_Hunde-Benni.html
funktioniert :)


oder hat jemand eine bessere idee??


...dark
dark
.
.
 
Beiträge: 18
Registriert: 31.03.2006 15:52


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste