Co si budeme říkat, každý web má vlastně čtyři různé adresy, na kterých se teoreticky otevře, aniž byste se o to nějak snažili. Dvě varianty nám dá přítomnost nebo absence www v url. Další dvě potom kombinace s klasickým http nebo zabezpečeným https protokolem.
Pokud váš hosting umožňuje i dočasnou adresu, ujistěte se, že máte nastaven v Drupalu Trusted Host Pattern a povolenou jen hlavní doménu. Dříve, než vyhledávač začne indexovat web na té dočasné adrese. Viz info v knize 333 tipů a triků pro Drupal 9.
Abyste zabránili tomu, že se web otevře na různých kombinacích URL adresy, už třeba kvůli vyhledávačům a jejich posuzování duplicitního obsahu na více URL, tak pravděpodobně v Drupalu měníte soubor .htaccess.
Dělá se to tak od doby, co je Drupal Drupalem. Ve spoustě komentářů na začátku souboru najdete i vzor, jak přesměrovat www variantu na non-www variantu, případně obráceně.
Co se týče přesměrování na zabezpečený protokol https, k tomu nápovědu ve výchozí podobě souboru nenajdete. Já používám následující řádky, které mi kdysi dávno poradili na Active24. Zpětně díky. Stačí je dát na začátek souboru .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA,NE]
Řešení je perfektní, http adresy přesměruje 301 redirektem na jejich podobu s https.
Ideální je, když se o toto stará hosting nebo server a nemusíte se tím v Drupalu už vůbec zabývat. Například Virtualmin, který používám pro správu webů, toto umí jedním zatrhovátkem.
.htaccess se vám v Drupalu často přepíše
Problém je, když si soubor .htaccess upravíte vlastním nastavením a nastane čas Drupal aktualizovat.
- Na klasickém hostingu byste měli sledovat, jestli aktualizace mění .htaccess. Pokud ano, své změny zpětně zaneste do nového. Jinak jej stačí prostě nepřepisovat.
- U webu rozjetého přes Composer vám bohužel scaffolding .htaccess vždy přepíše aktuální výchozí verzí.
Většinu webů s Drupalem už mám rozběhnutou pomocí Composeru a protože změny do .htaccessu dělám dost často i větší než jenom doplnění redirektů, používám patch, který se po aktualizacích v Composeru spustí a provede potřebné úpravy do čerstvého souboru. Viz článek Jak zabránit přepisování robots.txt a .htaccess při aktualizaci Drupalu přes Composer.
Přesměrování v Drupalu i bez úprav .htaccessu
Loni na podzim se objevil možná zbytečně přehlížený modul HTTPS and WWW Redirect. Ten totiž zajistí přesměrování na požadovanou verzi webu bez nutnosti editace jakéhokoli konfiguračního souboru.
Jasně, můžeme teoreticky řešit, jestli je rychlejší redirekt instrukcí pro webserver předtím, než se spustí Drupal (což tedy je) nebo řešení, kdy si přesměrování dělá až spuštěný Drupal. Ale tam, kde web běží z klasické instalace a bez Composeru je to prostě skvělá vychytávka.
Při dalších aktualizacích už nebude třeba řešit, zda se vám .htaccess přepsal nebo ne. Tedy minimálně kvůli přesměrování.
Tip: Potřebujete-li poslat návštěvníky z jedné domény na druhou, mrkněte se na návod, jak přesměrovat doménu s využitím služby Redirect.Host.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Dobry den , prosim chtel bych poradit , jakmile prepisu v D7 soubor httaaces sice stranky https ale rozhodi se mi vzhled a tudiz jsou stranky nepouzitelne :( tudiz predpokladam nefunguji spravne kaskadove styly :( byl bych rad za kazdou radu , dekuji