.htaccess v praxi: Jak správně nastavit Apache pro SEO, výkon a bezpečnost

Soubor .htaccess je často opomíjený, přesto patří k nejmocnějším nástrojům, které máte na serveru Apache (a LiteSpeed). Umí ovlivnit přesměrování, indexaci, bezpečnost i rychlost webu – a tedy i vaše SEO.

V následujícím článku se podíváme na osvědčené postupy, konkrétní příklady konfigurací a také na to, jak se .htaccess chová u populárních frameworků a redakčních systémů (CMS) jako WordPress, Joomla nebo Laravel.

Proč je .htaccess klíčový pro SEO

  • Kanonizace URL – sjednocení www / non-www, http / https
  • Trvalá přesměrování (301) – přenášejí hodnotu odkazů a chrání před duplicitou
  • Omezení duplicit – trailing slash, index.php, parametry
  • Zpřístupnění důležitých zdrojů – Google musí vykreslit CSS/JS, jinak penalizuje UX

Pokud je soubor špatně nastaven, může web vypadnout z indexu, ztratit pozice nebo zpomalit.

Základní příklady pravidel

1. Přesměrování na HTTPS a non-www variantu

RewriteEngine On

# Přesměrování na HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Přesměrování z www na non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

2. Trailing slash politika

Pokud chceme sjednotit URL s lomítkem na konci:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{2,5}$
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]

3. Blokace nebezpečných souborů

<FilesMatch "\.(ini|log|bak|sql)$">
  Require all denied
</FilesMatch>

.htaccess a populární CMS

WordPress

WordPress si většinou spravuje základní pravidla sám (pro permalinky). Typická šablona vypadá takto:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Důležité je psát vlastní pravidla nad tento blok, aby nebyla přepsána při aktualizaci WP.

Joomla

Joomla používá vlastní přepis pro „Search Friendly URLs“. Typický úryvek:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Joomla také vyžaduje přejmenovat htaccess.txt na .htaccess.

Drupal

Drupal spoléhá na podobný přepis jako WP. Příklad pro čisté URL:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

Laravel (a jiné PHP frameworky)

Laravel pracuje s front controllerem v public/index.php. Typický .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Následně uvnitř public/.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

SEO tipy pro práci s .htaccess

  • 301 místo 302 – vždy používejte pro trvalé změny
  • Minimalizujte hop-count – přesměrování maximálně přes 1 krok
  • Testujte hlavičky (curl -I https://domena.cz)
  • Nepřesměrovávejte vše na homepage – Google to bere jako chybu
  • Ponechte CSS/JS přístupné – jinak ztratíte body v Core Web Vitals

Typické chyby, které zničí indexaci

  • Redirect loop při kombinaci http→https a www→non-www
  • Zablokování složek /wp-content/uploads/ nebo /media/
  • Přesměrování starých URL pouze na homepage
  • Neodchycené query parametry (např. ?sort=asc)

 

Diskuze

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přejít nahoru