Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 17. 3. 2013, 15:13:48
Chcem mat adresu v tvare produkt - 123
do .htaccessu som pridal riadok RewriteRule ^produkt-([a-zA-Z0-9\.\-]+)/([0-9]+)$ index.php?url=$1?id_produktu=$2 [L,QSA] ale nic to nespravi Co robim zle ? M. |
||
Kajman Profil |
#2 · Zasláno: 17. 3. 2013, 17:20:36
Monkeys:
„ale nic to nespravi“ Nejdříve si opravte druhý otazník mezi $1 a id_produktu - má tam být &. Takze když zadáte do prohlížeče např. produkt-test/42 tak se nenačte stránka generovaná skriptem index.php? Máte rewrite vůbec zapnuté? |
||
Monkeys Profil * |
#3 · Zasláno: 17. 3. 2013, 17:47:29
Kajman:
Mam z toho teraz gulas Ak mam v odkaze <a href="produkt&id_produktu=65">
A dam v htaccess pravidlo RewriteRule ^produkt([a-zA-Z0-9\.\-]+)-([0-9]+)$ index.php?url=$1&id_produktu=$2 [L,QSA] Tak cakam ze po kliknuti mi to v prehliadaci vypise adresu produkt-65
Chcem len prepisat tu adresu na nieco rozumnejssieho. Ak to napisem do prehliadaca v tvare produkt-65 vrati mi to error stranku. (Teda ze sa nenasla)
M. |
||
Davex Profil |
Monkeys:
„Tak cakam ze po kliknuti mi to v prehliadaci vypise adresu produkt-65“ To neočekávej. Do odkazů na stránce se nezasahuje a skript by měl vypsat odkaz v požadované podobě. „Ak to napisem do prehliadaca v tvare produkt-65 vrati mi to error stranku. (Teda ze sa nenasla)“ Uvedená adresa nevyhovuje regulárnímu výrazu v přepisovacím pravidle. Co třeba produkt-neco-65 ?
|
||
Monkeys Profil * |
#5 · Zasláno: 17. 3. 2013, 23:18:02
zmenil som odkaz smerujuci na stranku do tvaru napr. produkt65
pravidlo v .htaccess som dal RewriteRule ^produkt([0-9]*)$ produkt.php?id_produktu=$1 [L,QSA]
aj tak to nejde PHP skript mi pise ze sa nenasiel id_produktu M. |
||
Kajman Profil |
#6 · Zasláno: 18. 3. 2013, 09:52:46
Monkeys:
„PHP skript mi pise ze sa nenasiel id_produktu“ To už není problém v .htaccess, to máte problém v php skriptu. Vypište si tam, jaké id_produktu dojde a další hlášky, abyste zjistil, v které části se chová skript jinak, než očekáváte. |
||
Monkeys Profil * |
#7 · Zasláno: 19. 3. 2013, 14:07:05
Ako vlozit viac pravidiel do .htaccess
RewriteRule ^(.+)$ index.php?url=$1 [L,QSA] // toto je vseobecne pravidlo RewriteRule ^(.+)/([0-9]+)$ index.php?url=$1&id_produktu=$2 [L,QSA] // pravidlo pre produkty Vseobecne pravidlo ma tvar napr. www.mojadomena.sk/index pravidlo pre produkty je napr. www.mojadomena.sk/produkty/65 vseobecne pravidlo plati pre vsetky stranky na webe ak zakomentujem vseobecne pravidlo tak mi funguje len pravidlo pre produkty ako to mam spravit aby to fungovalo aj tam aj tam V com je chyba ? dik M. |
||
Kajman Profil |
#8 · Zasláno: 19. 3. 2013, 14:46:33
Monkeys:
„ako to mam spravit aby to fungovalo aj tam aj tam“ Přehoďte si pravidla. Nahoře nechte speciální, níže pak obecné. Navíc si ošetřete, že už to není přepsáno (např. testem na existenci souboru, viz faq). |
||
Monkeys Profil * |
#9 · Zasláno: 19. 3. 2013, 15:27:00
Kajman:
„Přehoďte si pravidla.“ prehodil som to rozhodilo to cele stranky a problem ostal rovnaky M. |
||
Monkeys Profil * |
#10 · Zasláno: 19. 3. 2013, 22:41:09
ako vypisem tento riadok
RewriteRule ^(.+)_([0-9]+)$ index.php?url=$1&id_produktu=$2 [QSA] Ani neviem co sa tam vlastne zapise uz nadtym sedim cely den a nepohol som s tym este M. |
||
Monkeys Profil * |
#11 · Zasláno: 20. 3. 2013, 16:44:55
Je lepsie pouzivat relativne alebo absolutne cesty v odkazoch ?
M. |
||
Časová prodleva: 5 dní
|
|||
Monkeys Profil * |
#12 · Zasláno: 25. 3. 2013, 21:52:50
Tak po tyzdni pokus omyl som to nakoniec vyriesil takto:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)_([0-9]+)-(.+)\.html$ index.php?url=$1&id_produktu=$2 [L] RewriteRule ^(.*)_([0-9]+)\.html$ index.php?url=$1&id_$1=$2 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] |
||
Časová prodleva: 11 let
|
0