Joomla 5.2.2 Security & Bugfix Release
Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.
Nefunkční SEF po upgrade serveru (PHP 5.6 -> PHP 7.4 + https)
01. zář 2021 11:20 - 01. zář 2021 11:23 #144780
Ahoj,
Provozuji několik instalací Joomla na multihostingu pro více domén. Jedna doména je hlavní, ostatní k ní jako aliasy. Jednotlivé projekty pro různé domény jsou v samostatných adresářích, např. /public_html/www (pro hlavní doménu), /public_html/domena1, /public_html/domena2. Jsou dostupné také jako subdomény pro hlavní doménu, tedy např. domena1.hlavnidomena.cz.
Směrování požadavků mám pořešeno v .htaccess takto:
.htaccess je umístěn v rootu hlavního webu, tedy /public_html/www
Všude zapnuto SEF URL a přepis adres, v jednotlivých instalacích je default .htaccess Joomly s aktivním RewriteBase /
Vše fungovalo bez problémů na serveru s PHP 5.6. Po upgradu na server s PHP 7.4 a zapnutí https na aliasovaných doménách přestala Joomla běžet, resp. běží správně pouze na subdoménách, např. domena1.hlavnidomena.cz. Pokud zadám jako URL jen samotnou aliasovanou doménu (domena1.cz), Joomla vyhodí stránku 404. Při zadání některého z přepsaných SEF URL se objeví obsah, ale bez šablony.
Pokud vypnu SEF URL, naběhne to, ale šablona špatně načítá fonty, atp.
Chyba se projevuje např. zde:
veselakytara.dordion.cz/ (takhle to má vypadat)
www.veselakytara.cz/ (404 stránka z CMS)
www.veselakytara.cz/kontakt (https - obsah ano, ale bez šablony)
www.veselakytara.cz/kontakt (http - skoro komplet, nenačítá se CSS FontAwesome)
Prosím o radu, jak to nejlépe rozběhnout, díky.
Provozuji několik instalací Joomla na multihostingu pro více domén. Jedna doména je hlavní, ostatní k ní jako aliasy. Jednotlivé projekty pro různé domény jsou v samostatných adresářích, např. /public_html/www (pro hlavní doménu), /public_html/domena1, /public_html/domena2. Jsou dostupné také jako subdomény pro hlavní doménu, tedy např. domena1.hlavnidomena.cz.
Směrování požadavků mám pořešeno v .htaccess takto:
Code:
RewriteCond %{HTTP_HOST} ^www.domena1.cz$
RewriteRule ^(.*)$ http://domena1.hlavnidomena.cz/$1 [P,QSA,L]
RewriteCond %{HTTP_HOST} ^www.domena2.cz$
RewriteRule ^(.*)$ http://domena2.hlavnidomena.cz/$1 [P,QSA,L]
.htaccess je umístěn v rootu hlavního webu, tedy /public_html/www
Všude zapnuto SEF URL a přepis adres, v jednotlivých instalacích je default .htaccess Joomly s aktivním RewriteBase /
Vše fungovalo bez problémů na serveru s PHP 5.6. Po upgradu na server s PHP 7.4 a zapnutí https na aliasovaných doménách přestala Joomla běžet, resp. běží správně pouze na subdoménách, např. domena1.hlavnidomena.cz. Pokud zadám jako URL jen samotnou aliasovanou doménu (domena1.cz), Joomla vyhodí stránku 404. Při zadání některého z přepsaných SEF URL se objeví obsah, ale bez šablony.
Pokud vypnu SEF URL, naběhne to, ale šablona špatně načítá fonty, atp.
Chyba se projevuje např. zde:
veselakytara.dordion.cz/ (takhle to má vypadat)
www.veselakytara.cz/ (404 stránka z CMS)
www.veselakytara.cz/kontakt (https - obsah ano, ale bez šablony)
www.veselakytara.cz/kontakt (http - skoro komplet, nenačítá se CSS FontAwesome)
Prosím o radu, jak to nejlépe rozběhnout, díky.
01. zář 2021 11:36 - 01. zář 2021 11:37 #144781
I'm sorry, my responses are limited...you must ask the right questions.
Odpověď od Bong
Moderátor
Pokud zapnete HTTPS, je třeba jej zapnout také v Joomla a upravit .htaccess, například podobně:
Ideálně vezměte čistý htaccess.txt z poslední instalace Joomly a upravte jej na vaše podmínky.
Ale i tak bude potřeba upravit, zejména soubory šablon, aby neodkazovaly na adresy s HTTP. Jinak se právě nenačítají fonty a podobně a stránky máte s chybami: Nahrávání smíšeného aktivního obsahu...
Prostě HTTP nesmíte nikde v souborech Joomly a rozšíření, používat. Ani v .htaccess a jak koukám, tak to tam stále máte...
Code:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^veselakytara.cz
RewriteRule (.*) https://www.veselakytara.cz/$1 [R=301,QSA,L]
Ideálně vezměte čistý htaccess.txt z poslední instalace Joomly a upravte jej na vaše podmínky.
Ale i tak bude potřeba upravit, zejména soubory šablon, aby neodkazovaly na adresy s HTTP. Jinak se právě nenačítají fonty a podobně a stránky máte s chybami: Nahrávání smíšeného aktivního obsahu...
Prostě HTTP nesmíte nikde v souborech Joomly a rozšíření, používat. Ani v .htaccess a jak koukám, tak to tam stále máte...
I'm sorry, my responses are limited...you must ask the right questions.
Poděkovali: Pavel Štáfek
01. zář 2021 12:13 #144783
Odpověď od Pavel Štáfek
Uživatel
Děkuji, tohle řeší konzistentní protokol, ale nikoli přesměrování na správná data. Doména veselakytara.cz je aliasem k dordion.cz, takže ve výsledku je vidět obsah dordion.cz (adresář /public_html/www). Potřebuji vidět na doméně veselakytara.cz obsah subdomény veselakytara.dordion.cz (adresář /public_html/veselakytara). Takto to běželo dříve na původní konfiguraci.
Co s tím?
Co s tím?
01. zář 2021 12:46 - 01. zář 2021 12:47 #144784
I'm sorry, my responses are limited...you must ask the right questions.
Odpověď od Bong
Moderátor
Já vám to také psal jako příklad, vaše nastavení hostingu neznám. Prostě si to upravte tak, aby se vždy přesměrovalo na adresu s https://
RewriteCond %{HTTP_HOST} ^www.domena2.cz$
RewriteRule ^(.*)$ https/domena2.hlavnidomena.cz/$1 [P,QSA,L]
RewriteCond %{HTTP_HOST} ^www.domena2.cz$
RewriteRule ^(.*)$ https/domena2.hlavnidomena.cz/$1 [P,QSA,L]
I'm sorry, my responses are limited...you must ask the right questions.
01. zář 2021 13:18 #144786
Odpověď od Cony
Moderátor
Nebo vše v jednom
To řeší
- přesměrování na https
- přesměrování na verzi s www
- přesměrování jakéhokoliv aliasu na hlavní doménu
Code:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.hlavnidomena\.cz$
RewriteRule (.*) https://www.hlavnidomena.cz/$1 [R=301,QSA,L]
- přesměrování na https
- přesměrování na verzi s www
- přesměrování jakéhokoliv aliasu na hlavní doménu
01. zář 2021 13:22 #144787
Odpověď od Cony
Moderátor
Pozor na ten příznak P (Proxy) - tady bych jej asi nepoužil, mělo by tam být přesměrování, tzn R (Redirect)Bong napsal: RewriteRule ^(.*)$ https/domena2.hlavnidomena.cz/$1 [P,QSA,L]