Autor Zpráva
Karol
Profil *
Ahojte,

potreboval by som adresu napr. https://test.sk/priame-destinacie/varsava preložiť na https://test.sk/priame-destinacie/?varsava. Pravidlo potrebujem nastaviť tak, aby zachytávalo adresu /priame-destinacie/nazov-mesta s alebo bez lomky na konci.

Skúšal som pracovať s takýmto zápisom v súbore .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^\/priame-destinacie\/([^\/]*)\/?$
RewriteRule ^(.*)$ https://test.sk/priame-destinacie/?%1 [R=301,L]

Pri teste online zápis funguje a hoci napísaný natvrdo, adresu mení správne.

Vedeli by ste mi, prosím, poradiť ako toto sprevádzkovať na serveri? Chýba tam niečo, kvôli čomu by to mohlo nefungovať? Celý web je postavený na WP, takže tam sú aj ďalšie pravidlá.

Pomohli by ste mi aj s úpravou regulárneho výrazu v RewriteRule tak, aby nemusel obsahovať adresu (bol napísaný čistejšie)?

Ďakujem.
Kajman
Profil
Zkuste
RewriteEngine On
RewriteBase /
RewriteRule ^/?priame-destinacie/([^/]+)/?$ priame-destinacie/?$1 [R=302,L,NE]

302 na 301 si změňte, až to budete mít všechno otestované a funkční, jinak si 301 prohlížeč zapamatuje a úpravy se pro stejnou url neprojeví bez pročištění cache nebo historie stránek.

Pokud chcete zachovat případný query string z prvního požadavku (např. měřící kódy), přidejte do flagů v hranaté závorce ještě QSA.
Karol
Profil *
Dobrý deň, Kajman, ďakujem, teraz to funguje. Akoto, že ste vôbec nepoužili RewriteCond?

Pokud chcete zachovat případný query string z prvního požadavku (např. měřící kódy), přidejte do flagů v hranaté závorce ještě QSA.
Aký query string? Nerozumiem dosť dobre, ktorá časť to je.

Takisto iba zo zaujímavosti, kvôli čomu nefungoval môj pôvodný zápis? Vidím tam rozdiely v predznačení lomky a inej štruktúry ale akoto, že na teste to zbehlo?
Kajman
Profil
RewriteCond se používá hlavně v případech, které nelze jednoduše řešit prvním parametrem v RewriteRule. On se stejně nejříve vyhodnocuje regulár v RewriteRule a pak teprve podmínky v RewriteCond, i když je to v pořadí opačně.

Při relativním přesměrování je dobré používat RewriteBase. Tím se většinou potlačí rozličné možnosti konfigurace domén na hostinzích.

Při přístupu na
https://test.sk/priame-destinacie/varsava?source=reklama
je možné parametr source (to je ten query string) zapomenout?
Karol
Profil *
Kajman:
je možné parametr source (to je ten query string) zapomenout?
Aha, už rozumiem. Ten parameter tam z funkčného pohľadu nebude nikdy, ale je možné, že sa tam objaví nejaký fbclid pre rozpoznanie návštevy. Ako by, prosím, vyzeralo také pravidlo, ktoré by tento parameter zachovalo?
anonym_
Profil *
Karol:
Viz #2: „Pokud chcete zachovat případný query string z prvního požadavku (např. měřící kódy), přidejte do flagů v hranaté závorce ještě QSA.“
Karol
Profil *
anonym:
Tak už je všetko jasné. :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0