Stránka 1 z 2

[.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 6. 8. 2008 08:13
od palooo
Mam tento funkcny kod:

Kód: Vybrat vše
RewriteRule link-(.*)-(.*)\.html link.php?id=$1&cc=$2


Avsak nechcem tie linky v tvare nieco-nieco.html ale v tvare nieco/nieco/

skusal som jednoducho nahradit - znakom / ale nefunguje mi to, viete mi poradit?

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 6. 8. 2008 11:34
od gandor
nikdy som to vlastnorucne nerobil, ale vygooglene riesenie na tento problem som uz mal...
Funkcia sa vola mod_rewrite() (a treba ju mat v .htaccess samozrejme)
pouzitie pozri na googly viac ti nepomozem....

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 6. 8. 2008 16:39
od wojta
Zkus něco takového:
Kód: Vybrat vše
RewriteRule ^(.*)/(.*)$  index.php?id=$1&cc=$2

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 6. 8. 2008 18:56
od palooo
no tento tvar mi nefunguje, nemam problem to sprevadzkovat s akou kolvek koncovkou .html , .php atd... ale s tymi / to nechce vobec chodit

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 6. 8. 2008 21:01
od mbing
A co toto?
Kód: Vybrat vše
RewriteRule ^([^/]*)/(.*)$  index.php?id=$1&cc=$2


To je divné, oba regulární výrazy by měly fungovat.

palooo píše:nefunguje
Dokážeš to rozvést?

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 9. 8. 2008 22:57
od KillmanCZE
Dovolim si pokracovat v tomto vlakne. ;-)

Udelal jsem si presmerovani, ale stale to neni podle mych predstav. Ted mi to z "neco.cz/tototunechci-abc" udela "neco.cz/main.php?page=abc". Da se nejak zbavit toho "tototunechci"?
Kód: Vybrat vše
RewriteRule ^tototunechci-(.*)$ main.php?page=$1

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 10. 8. 2008 12:44
od mbing
Dotaz moc dobře nechápu.

Kód: Vybrat vše
RewriteRule ^(.*)-(.*)$ main.php?page=$2

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 10. 8. 2008 14:16
od KillmanCZE
Tak takhle jsem to urcite nemyslel. :-)

Chci, aby jsem mel link jen "neco.cz/abc" a z toho "neco.cz/main.php?page=abc". A to mi prave nejde udelat.
Kód: Vybrat vše
RewriteRule ^(.*)$ main.php?page=$1

Tohle je blbost. Z toho vyleze "neco.cz/main.php?page=main.php". Snad uz se to ted da nejak pochopit.

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 10. 8. 2008 21:17
od mbing
Kód: Vybrat vše
RewriteRule ^(.*)$ main.php?page=$1

neco.cz/abc => main.php?page=abc
neco.cz/main.php => neco.cz/main.php?page=main.php

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 10. 8. 2008 21:54
od KillmanCZE
Diky, ze se se mnou trapis, ale uz sem psal, ze mi to takto nefunguje. :-(

neco.cz/abc => neco.cz/main.php?page=main.php
A vypise mi to smycka pri presmerovani.

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 10. 8. 2008 22:16
od mbing
Není nad to se odreagovat od Visual Basicu. :D

To zacyklení jsi měl oznámit dříve, ale mohlo mě to napadnout.

Kód: Vybrat vše
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ main.php?page=$1 [L,QSA]

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 11. 8. 2008 10:06
od KillmanCZE
Myslel jsem, ze je to celkem jasne. :-)

Dekuji za pomoc. Uz to jede jak ma.

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 11. 8. 2008 10:16
od mbing
Není zač. 8-) Při tvé hodnosti bys měl mod_rewrite ovládat levou zadní. :-/ Chceš hodnost odebrat? 8-P

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 11. 8. 2008 12:42
od KillmanCZE
Neee. Hodnost mi prosim nech. :-)

Jeste mam posledni dotaz.
Nekdy bude link vypadat "neco.cz/abc", nekdy zase "neco.cz/abc-def" a nekdy i "neco.cz/abc-def-ghi". A potrebuju, aby mi to podle situace delalo "main.php?page=abc(&id=def(&id2=ghi)). Jde to nejak elegantne vyresit? Napadla me jen tato prasecina. :D
Kód: Vybrat vše
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)-(.*)-(.*)$ main.php?page=$1&id=$2&id2=$3 [QSA,L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)-(.*)$ main.php?page=$1&id=$2 [QSA,L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ main.php?page=$1 [QSA,L]

Re: [.htaccess] Ako zmenit tvar URL

Odeslat příspěvekNapsal: 11. 8. 2008 13:40
od mbing
mod_rewrite není všemocný. Více možností dává mod_rewrite s vkládáním skriptu v jazyce Perl. Jelikož máš pevně daný počet řetězců mezi pomlčkami, bude nejjednodušší použít mod_rewrite s vícenásobnými pravidly. Kdybys měl nekonečný počet řetězců mezi pomlčkami, o mod_rewrite s vkládáním skriptu v jazyce Perl by se dalo uvažovat.

Máš tam chybu, například při něco.cz/aaa-bbb by se aktivovalo 2. a 3. pravidlo nebo při něco.cz/aaa-bbb-ccc by se aktivovalo 1., 2. a 3. pravidlo a předpokládám, že nikdy nebudeš mít něco.cz/-- (nic mezi pomlčkami). ;)

Kód: Vybrat vše
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([^-]+)-([^-]+)-([^-]+)$ main.php?page=$1&id=$2&id2=$3 [QSA]
RewriteRule ^([^-]+)-([^-]+)$ main.php?page=$1&id=$2 [QSA]
RewriteRule ^([^-]+)$ main.php?page=$1 [QSA,L]


Teď nevím jestli stačí jeden RewriteCond, jak jsem to udělal, nebo u každého RewriteRule. :roll: