Zadejte hledaný výraz...

Primitivní přesměrování URL

saMcz
verified
rating uzivatele
(4 hodnocení)
21. 10. 2014 22:43:51
Zdravím,
snažím se v htaccess přesměrovat tuto adresu:
example.com/svestky/
- na adresu:
example.com/ovoce/svestky/
Což lze udělat tímto:
RewriteRule ^svestky/(.*)$ ovoce/svestky/$1
ALE
V momentě, kdy chci přesměrovat k této adrese ještě tuhle:
example.com/svestky/fialove
- na adresu:
example.com/ovoce/svestky/
A použiju pravidlo:
RewriteRule ^svestky/fialove(.*)$ ovoce/svestky/$1
Tak mi to vyplivne výslednou URL tuto:
example.com/ovoce/svestky/fialove
Tzn. pokud budu mít tyto 2 pravidla:
RewriteRule ^svestky/(.*)$ ovoce/svestky/$1
RewriteRule ^svestky/fialove(.*)$ ovoce/svestky/$1
Tak se mi nikdy nepovede přesměrovat obě adresy na tu jednu společnou.
Věděl by prosím někdo kde je chyba, nebo jak se to má udělat správně?
Děkuji všem předem za pomoc.
saM
21. 10. 2014 22:43:51
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063151
sysline
verified
rating uzivatele
(2 hodnocení)
21. 10. 2014 22:51:43
Netestoval jsem to, takze se mohu mylit, ale logicky spatruji problem v tom, ze na obe URL se vykonava prvni pravidlo, protoze pokud v prvnim pravidle mate
pokud "svestky/cokoliv" tak presmeruj, logicky se to musi aplikovat i na druhou URL svestky/fialove protoze to spada do mnoziny cokoliv...
Nenapadlo te, zkusit pozici tech pravidel prohodit? :)
21. 10. 2014 22:51:43
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063150
saMcz
verified
rating uzivatele
(4 hodnocení)
21. 10. 2014 22:52:43
Prohodit je byla prvni vec, co jsem udelal, stejny vysledek... :(
Kdyz pouziju ty pravidla zvlast, tak funguji, spolu ne a to je co hledam, jak to vymyslet.
21. 10. 2014 22:52:43
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063149
McFly
verified
rating uzivatele
(4 hodnocení)
22. 10. 2014 09:02:45
Hoj, zkusil jsem tohle:
(soubor .htaccess v kořenovém adresáři domény example.com)
Mám kořenový adresář pro doménu example.com a v něm adresář "svestky" a "ovoce", v něm další podadresář "svestky" a v něm podadresář "fialove" a přesměrovává to následovně:
Pokud jsi předtím vytvářel nějaká zkušební pravidla, zkus vymazat cache prohlížeče. Pokud totiž používáš permanentní přesměrování (R=301), prohlížeč si "pamatuje" i stará třeba chybná pravidla a pak se to tváří, že i správné pravidlo nefunguje. :)
22. 10. 2014 09:02:45
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063148
saMcz
verified
rating uzivatele
(4 hodnocení)
22. 10. 2014 19:46:48
Ahoj, ano, ale výsledek přesměrování má být tento:
example.com/svestky/ -> example.com/ovoce/svestky/
example.com/svestky/fialove/ -> example.com/ovoce/svestky/
Tzn. pro obě adresy k přesměrování platí stejná cílová nová URL a ono to právě pro to druhé pravidlo stále "cpe" na konec to "/fialove/", což nemá, to je ten problém.
Cache si vždy promazávám...
22. 10. 2014 19:46:48
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063147
McFly
verified
rating uzivatele
(4 hodnocení)
23. 10. 2014 06:26:06
Tak to se omlouvám, špatně jsem to pochopil.
Napadá mne prosté
RewriteRule ^svestky/(.*)$ ovoce/svestky/ (chybí tam parametr $1)
23. 10. 2014 06:26:06
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063146
saMcz
verified
rating uzivatele
(4 hodnocení)
23. 10. 2014 10:39:56
Perfektní, nyní to funguje - moc děkuji za pomoc :) Problém byl tedy v parametru
$1
? Jak prosím tento parametr vše ovlivňoval, tj. jakou plní funkci?
23. 10. 2014 10:39:56
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063145
McFly
verified
rating uzivatele
(4 hodnocení)
23. 10. 2014 15:36:49
RewriteRule ^svestky/(.*)$ ovoce/svestky/$1
$1 = (.*)
takze pokud máme následující URL http://example.com/svestky/velke/pekne/chutne.html, tak proměnná $1 = velke/pekne/chutne.html, viz http://www.jakpsatweb.cz/server/mod-rewrite.html#promenne
23. 10. 2014 15:36:49
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063144
saMcz
verified
rating uzivatele
(4 hodnocení)
4. 12. 2014 10:01:04
Zdravím,
jak lze prosím toto pravidlo:
aplikovat na subdoménu? Tzn. nikoliv na přesměrování tohoto:
example.com/svestky/ -> example.com/ovoce/svestky/
ale tohoto:
svestky.example.com/ -> example.com/ovoce/svestky/
4. 12. 2014 10:01:04
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063143
udělej to pomocí RewriteCond, asi nějak takto:
7. 12. 2014 20:35:20
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063142
saMcz
verified
rating uzivatele
(4 hodnocení)
8. 12. 2014 09:47:45
Tzn to má vypadat takto?
RewriteCond %{HTTP_HOST} ^(svestky.)?example.com$ ovoce/svestky/$1
---------- Příspěvek doplněn 08.12.2014 v 10:11 ----------
Bohužel toto pravidlo nefunguje.
8. 12. 2014 09:47:45
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063141
RewriteCond je podmínka, která se dává před RewriteRule -> tím se omezí, na co se RewriteRule použije.
8. 12. 2014 10:45:09
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063140
saMcz
verified
rating uzivatele
(4 hodnocení)
9. 12. 2014 10:52:03
Napsal rapemer;1147893
RewriteCond je podmínka, která se dává před RewriteRule -> tím se omezí, na co se RewriteRule použije.
Bohužel pravidlo vůbec nereaguje :(
9. 12. 2014 10:52:03
https://webtrh.cz/diskuse/primitivni-presmerovani-url#reply1063139
Pro odpověď se přihlašte.
Přihlásit