Nefunkční SEF po upgrade serveru (PHP 5.6 -> PHP 7.4 + https)

Pavel Štáfek
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:
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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Bong
01. zář 2021 11:36 - 01. zář 2021 11:37 #144781
Pokud zapnete HTTPS, je třeba jej zapnout také v Joomla a upravit .htaccess, například podobně:

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Pavel Štáfek
01. zář 2021 12:13 #144783
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?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Bong
01. zář 2021 12:46 - 01. zář 2021 12:47 #144784
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]

I'm sorry, my responses are limited...you must ask the right questions.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
01. zář 2021 13:18 #144786
Nebo vše v jednom
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.hlavnidomena\.cz$
RewriteRule (.*) https://www.hlavnidomena.cz/$1 [R=301,QSA,L]
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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
01. zář 2021 13:22 #144787

Bong napsal: RewriteRule ^(.*)$ https://domena2.hlavnidomena.cz/$1 [P,QSA,L]

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)

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.