Autor Zpráva
caradoc
Profil *
Dobrý večer,
prosím o radu
hraji si s htaccess a nedaří se mi prolomit jeden problém,
odkaz core.php?ukon=knizka&id=10
nechavam zobrazit takto : core-knizka-10
v htaccess mám tento kod :
RewriteRule ^([^/\.]+)-([^/\.]+)/?$ core.php?ukon=$1&id=$2 [L]

vše pracuje dokonale, až do doby kdy potřebuji přidat k odkazu další hodnoty, například core.php?ukon=knizka&id=10&stranka=1

pak už soubor htaccess podstrkuje neexistující stránky apod, pokud v htaccess přidám podmínku pro načtení třetí hodnoty, tak zas mám v již existujících odkazech <a href=... atd chybu, protože htaccess očekává celkem 3 proměnné, ale já nabízím jen 2,
jak pořešit aby htaccess neřval na chybě když očekává proměnné 3 ale já chci podstrčit jen proměnné 2?
děkuji za rady
Caradoc
Davex
Profil
Musí se přidat další přepisovací pravidlo pro tři parametry:
RewriteRule ^([^/\.]+)-([^/\.]+)/?$ core.php?ukon=$1&id=$2 [L]
RewriteRule ^([^/\.]+)-([^/\.]+)-([^/\.]+)/?$ core.php?ukon=$1&id=$2&stranka=$3 [L]
caradoc
Profil *
díky za odpověď, ale je potřeba pravidla psát opačně,
nejdříve uvést
RewriteRule ^([^/\.]+)-([^/\.]+)-([^/\.]+)/?$ core.php?ukon=$1&id=$2&stranka=$3 [L]

a poté uvést
RewriteRule ^([^/\.]+)-([^/\.]+)/?$ core.php?ukon=$1&id=$2 [L]


jinak apache vrací špatné hodnoty,
Davex
Profil
Omlouvám se, přehlédl jsem, ža tam není vyloučena pomlčka. Pak by na pořadí nezáleželo.
RewriteRule ^([^/\.-]+)-([^/\.-]+)/?$ core.php?ukon=$1&id=$2 [L]
RewriteRule ^([^/\.-]+)-([^/\.-]+)-([^/\.-]+)/?$ core.php?ukon=$1&id=$2&stranka=$3 [L]
caradoc
Profil *
já to nakonec pořešil jednoduchým regulárním výrazem
RewriteRule ^(.*)-(.*)$ core.php?ukon=$1&edice=$2 [L,QSA]
atd...
a funguje vše dokonale,
sle zkusím ještě váš způsob, možná bude v něčem lepší,
děkuji,..

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0