Okhelp.cz

Recepty, články, nápady, programování. Dříve dum-zahrada, finance, internet a know-how.okhelp.cz Pro lepší výsledky hledání používejte i diakritiku.

htaccess code



5 LW*

0.)htaccess code - htaccess-code


HTTP to HTTPS


# only one RewriteEngine On can be used in htaccess!!!!!!!!!!!!!! 
RewriteEngine On

# all redirection HTTP -> HTTPS
# HTTPS off / if start with http.....
# off equality !=on 
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

example.com to www.example.com


# redirection no www -> https://www.
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Change sitemap.txt to sitemap.php if url //domain.com/sitemap.txt

# //domain.com/sitemap.txt open sitemap.php
# in sitemap.php is function what return list of address
RewriteRule ^sitemap\.txt$ sitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]

Remove www. before subdomain name

www.subdomain.example.com
to
subdomain.example.com

RewriteCond %{HTTP_HOST} (^|\.)(www\.)([^\.]*)\.example\.com$ [NC]
RewriteRule (.*) https://%3.example.com/$1  [R=301,QSA,L]

Remove dust before subdomain.example.com


# www.bla.www.m.bla.subdomain.example.com to subdomain.example.com
RewriteCond %{HTTP_HOST} (.*)(subdomain.example.com$) [NC]
RewriteRule (.*) https://subdomain.example.com/$1  [R=301,QSA,L]

Remove only one www. before domain name


# redirection www. -> https://
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Přejít na topic "htaccess code" v kontextu témata kategorie?


Celé téma ( whole topic)


topic_id=2000

htaccess rady a zkušenosti

Testování kódu htaccess ZDE

Příklady na jakpsatweb
Dokumentace na apache.org
Testování regexů

Komentar nesmi byt na stejnem radku, jako kod. Zde jsou komentare, na konci radku (vedle) prikazu, jen kvuli snadnejsimu pochopeni kodu.

RewriteCond string (regex1) # tento radek nebude fungovat, koment musi byt na samostatnem radku, nejlepe nad provadenym kodem.

# tak je to spravne, komentar na samostatnem radku a nejlepe nad ukolem 
RewriteCond string (regex1)

RewriteRule dosáhne jen na regex předchozího RewriteCond!

RewriteCond string (regex1) # nedosahne
RewriteCond string (regex2)
RewriteRule (regex) %1 # v %1 bude regex2

Číslo za % udává, kolikátá skupina předchozího regexu v RewriteCond bude použita. %0 vezme vše ze všech skupin.
Pokud skupina neexistuje, tak se vypíše jako %N , kde N je číslo skupiny, která nebyla nalezena.
$1 číslo za $ udává kolikátá skupina regexu bude použita, ale platí jen pro RewriteRule z jeho vlastního regexu. $0 vezme všchny skupiny (group) regexu z RewriteRule.
RewriteCond může být několikrát za sebou, ale jakmile se jedna z těchto podmínek nesplní, tak se nesplní ani následující RewriteRule!


RewriteCond #  podmínka nesplněna
RewriteCond #  splněna
RewriteRule  # se nevykoná, protože jedna z podmínek nebyla splněna

RewriteRule přísluší vždy k předchozímu - předchozí skupině RewriteCond. Následující RewriteRule už je samostatné viz příklad:


RewriteCond
RewriteRule # tohle reaguje na předchozí podmínku a vykoná se, když je podmínka splněna
RewriteRule # tohle už je samostatné a nebude brát ohled na podmínku - podmínky v předchozích řádcích.
Využití regexu, který bude vytvořen až v následujícím RewriteRule. Regex Back-Reference Availability

Date: 27.02.2020 - 11:11
topic_id=2000

Adresa dynamická na statickou adresu


RewriteEngine On


RewriteBase / # //localhost/internet/download.php?ds=NECO zadana adresa
# QUERY_STRING je vse za otaznikem tedy ds=NECO
# kdyz query string zacina ds=(NECO) a uz za nim neni vubec nic, zadny dalsi &val=value ^&
RewriteCond %{QUERY_STRING} ^ds=([^&]+)$
# tak download.php nahradit za %1-download-data-link.html? pricemz %1 je to co se vybraloz za ds=, tedy NECO
# R=301 je presmerovani takze znovu to posle na web ke kontrole napr. do tohoto souboru kdyz je adresa na tento web # L .. last .. posila adresu ke kontrole na web. adresa bude NECO-download-data-link.html

RewriteRule ^download\.php$ %1-download-data-link.html? [R=301,L,NE]

# pri dalsi kontrole prevede NECO-download-data-link.html zpet na download.php?rw=3&ds=NECO a uz to hleda v adresarich
# ale v adresnim radku prohlizece uz zustane ta prichozi NECO-download-data-link.html
#QSA prida query string, bude se pak jeste hodit. rw=3 muzeme pak odchytit v php ALE hlavne brani cykleni, jinak # by to odchytil zase znovu RewriteCond %{QUERY_STRING} ^ds=([^&]+)$ kdyby tam zustal jen ds=NECO

RewriteRule ^([^/]+)-download-data-link\.html$ download.php?rw=3&ds=$1 [L,QSA]



Více na: https://www.jakpsatweb.cz/server/mod_rewrite/mod-rewrite-priklady.html
topic_id=2000

Testování regulárních výrazů - regex
https://regex101.com/



Je možno zadat příchozí adresu a nechat jí upravit, pak znovu nechat projít
Zadá se adresa //bla.bl?query_string=testovany_string
Do velkého pole se zadají
RewriteCond
RewriteRule
a klikne se na TEST
https://htaccess.madewithlove.be/


Přesměrování stránek
https://www.sslmentor.cz/napoveda/presmerovani-https-pomoci-htaccess

Easily check status codes, response headers, and redirect chains.
Kontrola jak probíhá přesměrování s jednotlivými hlášeními - 301, 200, 404 atd.
https://httpstatus.io/

4.) htaccess code - htaccess-code


HTTP to HTTPS


# only one RewriteEngine On can be used in htaccess!!!!!!!!!!!!!! 
RewriteEngine On

# all redirection HTTP -> HTTPS
# HTTPS off / if start with http.....
# off equality !=on 
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

example.com to www.example.com


# redirection no www -> https://www.
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Change sitemap.txt to sitemap.php if url //domain.com/sitemap.txt

# //domain.com/sitemap.txt open sitemap.php
# in sitemap.php is function what return list of address
RewriteRule ^sitemap\.txt$ sitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]

Remove www. before subdomain name

www.subdomain.example.com
to
subdomain.example.com

RewriteCond %{HTTP_HOST} (^|\.)(www\.)([^\.]*)\.example\.com$ [NC]
RewriteRule (.*) https://%3.example.com/$1  [R=301,QSA,L]

Remove dust before subdomain.example.com


# www.bla.www.m.bla.subdomain.example.com to subdomain.example.com
RewriteCond %{HTTP_HOST} (.*)(subdomain.example.com$) [NC]
RewriteRule (.*) https://subdomain.example.com/$1  [R=301,QSA,L]

Remove only one www. before domain name


# redirection www. -> https://
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


Editace Jana Žákovská : 23.5.2020 - 12:05
Počet článků v kategorii: 69
Url:htaccess-code
Share
Share
Tweet