Autor Zpráva
kozusnikjan
Profil *
Dobrý den,

mohl bych Vás požádat o pomoc?

Řeším tenhle problém:
Mám 2 domény, řekněme třeba tohle:
domena.cz
app.domena.cz

A potřebuji udělat tohle:
domena.cz => www.domena.cz
app.domena.cz => app.domena.cz
www.app.domena.cz => app.domena.cz
http://domena.cz => https://domena.cz
http://app.domena.cz => https://app.domena.cz
Tedy - ať se u hlavní domény přidá www, pokud není. U subdomény, ať se www nepřidává a pokud tam je, tak ať se odstraní. A zároveň, ať se všechny adresy přesměrují na HTTPS, pokud to je pouze HTTP.

Bohužel mě to ale zlobí v Chrome - pokud napíšu domena.cz, tak mě to přesměruje na https://www.domena.cz/domains/domena.cz/.

Moc nevím, jak si s tím poradit :/

Mám podobnou strukturu jako je u webhosting u wedosu, tedy:
/web/domains/domena.cz
/web/domains/app.domena.cz

A tady je můj .htaccess, který mám ve složce web

RewriteEngine On

# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]

# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]

# add www if not subdomain
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# remove www if subdomain
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

# add https
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

V každé složce s webem je ještě další .htaccess, ve kterém je tohle (ten tam musí být kvůli laravelu):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^public/
RewriteCond $1 !^socket.io/
RewriteRule ^(.*)$ /public/$1 [L]

Napadá vás, prosím, co by se s tím dalo dělat a jak to opravit?

Mockrát děkuji.
Davex
Profil
kozusnikjan:
Přesměrování na subdoménu, variantu bez www a HTTPS patří na začátek, aby k němu došlo před přepisem.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0