Unealtă web gratuită

Generator .htaccess (Apache)

Bifezi ce îți trebuie (HTTPS forțat, www, redirecționări 301, compresie GZIP, cache, pagină 404, protecții WordPress) și primești regulile .htaccess gata de copiat.

Exemple de reguli .htaccess

Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.

HTTPS și fără www Cele două redirecționări într-un singur pas, ca să nu existe lanțuri de redirect.
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
Mutare pe alt domeniu Toate paginile de pe domeniul vechi duc la aceeași adresă pe cel nou.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domeniu-vechi\.ro$ [NC]
RewriteRule ^(.*)$ https://www.domeniu-nou.ro/$1 [L,R=301]
Regulile implicite WordPress Blocul pe care îl scrie WordPress; nu îl modifica, pune regulile tale deasupra.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Blochează o adresă IP Sintaxa Apache 2.4.
<RequireAll>
Require all granted
Require not ip 203.0.113.45
</RequireAll>
Parolă pe un folder Autentificare de bază; fișierul .htpasswd se ține în afara folderului public.
AuthType Basic
AuthName "Zonă protejată"
AuthUserFile /home/utilizator/.htpasswd
Require valid-user
Pagini mutate Redirect 301 pentru adrese vechi, câte una pe rând.
Redirect 301 /despre.html /despre-noi/
Redirect 301 /blog/articol-vechi/ /blog/articol-nou/

Cum folosești generatorul de .htaccess

  1. Bifează Forțează HTTPS și alege ce faci cu www: lași cum e, redirecționezi spre www sau spre varianta fără www.
  2. Scrie redirecționările 301 câte una pe rând, în forma /vechi /nou.
  3. Bifează compresia GZIP (mod_deflate), cache-ul în browser (mod_expires) și dezactivarea listării directoarelor; completează calea paginii 404.
  4. Pentru WordPress, bifează blocarea accesului la wp-config.php și la xmlrpc.php, apoi copiază codul. Totul se generează în browser; nu se trimite nimic către server.

Unde pui regulile

Fișierul .htaccess funcționează doar pe Apache și LiteSpeed. Pe Nginx nu are efect; acolo regulile se scriu în configurația serverului. Pe WordPress, nu modifica blocul dintre # BEGIN WordPress și # END WordPress, pentru că îl rescrie WordPress. Pune regulile tale deasupra lui.

# Forțează HTTPS și varianta fără www
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

Redirect 301 /pagina-veche/ /pagina-noua/
Options -Indexes
ErrorDocument 404 /404.html

# BEGIN WordPress
# ... regulile WordPress rămân neatinse
# END WordPress

301 sau 302

301 înseamnă mutare permanentă: motoarele de căutare transferă adresa veche spre cea nouă, iar browserele țin minte redirecționarea. 302 este temporară. Pentru schimbări definitive de adresă folosește 301, dar testează-le întâi, pentru că browserul păstrează un 301 greșit și după ce l-ai corectat.

Testează după fiecare modificare

O greșeală de sintaxă sau un modul lipsă dă eroarea 500 pe tot site-ul. Păstrează o copie a fișierului vechi, adaugă regulile pe rând și reîncarcă site-ul după fiecare. Blocurile generate pentru GZIP și cache sunt puse în <IfModule>, ca să nu strice nimic dacă modulul lipsește.

Întrebări frecvente

De ce nu se vede fișierul .htaccess?

Numele care încep cu punct sunt ascunse. În managerul de fișiere al hostingului sau în clientul FTP activează afișarea fișierelor ascunse.

Am primit eroarea 500 după modificare. Ce fac?

Pune înapoi copia veche a fișierului, apoi adaugă regulile una câte una ca să găsești linia problematică. Comenzile de bază pentru server găsești în Învață Linux.