Ďalšie .htaccess presmerovania

Ak presmerovávame viacero rôznych adries podľa query adresy na konkrétnu rovnakú adresu, prípadne potrebujeme špeciálne pravidlá, nižšie uvádzame tipy s vysvetlením, ktoré sú dobre využiteľné.

  • Príznak [OR] znamená že sa vyhodnocujú aj ďalšie pravidlá, bezprostredne nasledujúce, ak dané pravidlo bolo vyhodnotené ako nepravdivé (nesúhlasí vzor so vstupom)
  • %{QUERY_STRING} je to, čo je na konci url za otáznikom - napríklad ako v príklade nižšie - ak URL vyzerá ako https://domain.ext/hocijaka-cesta/?kontakt tak to, čo sa vytiahne na porovnanie je slovo "kontakt" (bez úvodzoviek)
  • RewriteRule prepíše URL podľa schémy. Najprv je pravidlo pre pôvodnú cestu - napríklad len ^ - čo znamená že sa pripojí začiatok protokol, doména a RewriteBase. Ak je RewriteBase / tak to môže vyzerať nasledovne: http(s)://domain.ext/ - čo znamená, že pravidlo platí len pre url s jedným lomítkom za názvom domény (ak je nastavené RewriteBase /) Ďalšia položka je cesta novej URL. Môže byť absolútna (nezačína lomítkom) - napríklad http(s)://new-domain.ext/super-content, alebo relatívna (začína lomítkom)
  • Príznak L ako last znamená, že vyhodnocovanie pri tomto pravidle končí.
  • R ako redirect znamená, že stránka sa má presmerovať. Používa sa 301 pre trvalé presmerovanie, alebo 302 pre dočasné. 301 je dobré ak máme nejakú vyhľadávaciu službu so štatistikami (napríklad google) a táto využíva štatistiky pre konkrétne URL. V prípade 301 sa štatistiky novej URL pripoja k starej. Ak je ale 302, tak sa toto neudeje a čaká sa až bude existovať pravidlo s kódom 301. Taktiež 302 sa neuchováva v "cache" a dá sa preto jednoducho meniť na rozdiel od typu 301.
  • Príznak [NE] znamená, že URL sa nemá prekódovavať - napríklad medzera sa konvertuje na %20 a v prípade, že sa v URL nachádza medzera a nieje príznak NE tak miesto "URL/nie co" sa pošle "URL/nie%20co" ak ale je nastavený príznak NE tak sa pošle "URL/nie co".
  • V RewriteRule sa môže Regulérny výraz ozátvorkovať a použiť pre výslednu url - napríklad ak chceme zmeniť iba časť url, môžeme použiť ako v príklade nižšie na konci (.*) - zátvorky nám uložia tieto údaje do premennej a použijeme ju pomocou $1 v cieľovej url.


<?php
#URL, that match is http(s)://domain.ext/?kontakt(y) - redirect to http(s)://domain.ext/kontakt/
RewriteCond %{QUERY_STRING} ^kontakt$ [OR]
RewriteCond %{QUERY_STRING} ^kontakty$
RewriteRule ^ /kontakt/ [L,R=301]

#Redirecting from http(s)://domain.ext/?sidlo to http(s)://domain.ext/kontakt/#sidlo
RewriteCond %{QUERY_STRING} ^sidlo$
RewriteRule ^ /kontakt/#sidlo [NE,L,R=301]

#Redirecting from http(s)://domain.ext/kontakt/bratislava?pobocka to
#http(s)://domain.ext/kontakt/#bratislava pomocou 302 presmerovania (docasne)
RewriteCond %{QUERY_STRING} ^pobocka$
RewriteRule ^kontakt/bratislava /kontakt/#bratislava [L,R=302]

#Redirecting from http(s)://domain.ext/kontakt/sidlo to http(s)://domain.ext/kontakt/
RewriteRule ^kontakt/sidlo /kontakt/ [L,R=301]

#Redirecting everything that begins with http(s)://domain.ext/cz/kontakt/ and redirecting to #http(s)://domain.ext/kontakt/cz/ - after last slash, remaining URL part will be attached
RewriteCond %{QUERY_STRING} ^extra$
RewriteRule ^cz/kontakt/(.*)$ /kontakt/cz/$[NE,L,R=301]
?>

helpdesk

sme pripravení pomôcť

práve k dispozícií

online pracovníkov 2 / 6

Platon Technologies

How can we help you?

Prijímame hlásenia problémov či iných podnetov, súvisiacich s používaním našich produktov a služieb.

helpdesk@platon.sk +421 222 111 321 (8:30 - 17:30)

Ak potrebujete pomoc, kontaktujte nás e-mailom alebo telefonicky.

  • Telefonicky od 8:30 - 17:30
  • Aj cez víkendy a sviatky
  • Rýchla expertná pomoc
  • Jednoduchý a ľudský prístup
  • Riešime aj zložité problémy
kontaktný formulár

Dajte šancu našej online poradni. Nájdete v nej viac ako:

  • 6 kategórií
  • 56 návodov
  • 22 e-mailových nastavení
  • 6 programátorských tipov
prejsť do poradne

Otázky ohľadom naších produktov alebo špecifické požiadavky? Napíšte nám.

Ďakujeme za odkaz

V prípade potreby vás budeme kontaktovať.

Nepodarilo sa odoslať

Kontaktujte nás na helpdesk@platon.sk

NEWSLETTER

Prihlásiť sa na odber našich noviniek a aktuálnych akcií

Ďakujeme za Váš odber

Nepodarilo sa prihlásiť