Autor | Zpráva | ||
---|---|---|---|
Karol Profil * |
#1 · Zasláno: 6. 3. 2022, 19:36:30
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 |
#2 · Zasláno: 7. 3. 2022, 13:30:21
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 * |
#3 · Zasláno: 8. 3. 2022, 09:04:33
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 |
#4 · Zasláno: 8. 3. 2022, 09:58:04
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 |
||
Časová prodleva: 12 dní
|
|||
Karol Profil * |
#5 · Zasláno: 20. 3. 2022, 08:42:50
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 * |
#6 · Zasláno: 20. 3. 2022, 09:03:10
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 * |
#7 · Zasláno: 20. 3. 2022, 20:58:40
anonym:
Tak už je všetko jasné. :-) |
||
Časová prodleva: 3 roky
|
0