Fișierul .htaccess standard pentru WordPress, Joomla, OpenCart și alte CMS

Tipărire
  • 0

Când un site afișează brusc eroarea 500, intră într-o buclă de redirecționări sau dă 404 pe toate paginile în afară de prima, de vină este adesea fișierul .htaccess. Soluția este să puneți la loc regulile standard ale CMS-ului. Mai jos găsiți aceste reguli pentru WordPress, Joomla, OpenCart și Bitrix, unde își țin fișierul Drupal, PrestaShop și Magento și cum îl înlocuiți în cPanel fără să pierdeți setări importante.

La ce folosește .htaccess și de ce se strică

.htaccess este un mic fișier text din folderul site-ului, prin care serverul web află cum să trateze cererile: transformă adresele ușor de citit în apeluri spre index.php, redirecționează spre HTTPS, blochează accesul la anumite fișiere. Regulile funcționează la fel pe Web Hosting SSD (Nginx și Apache) și pe WordPress Hosting și Business Hosting, unde serverul web LiteSpeed citește .htaccess în același mod.

Fișierul se strică de obicei în una dintre aceste situații:

  • un plugin de cache, de securitate sau de redirecționare a scris reguli care nu se înțeleg între ele;
  • cineva l-a editat manual și a lăsat o greșeală de tipar;
  • după schimbarea versiunii PHP au rămas rânduri vechi de tipul php_flag sau php_value;
  • site-ul a fost spart, iar fișierul trimite acum vizitatorii pe alt site.

Cum înlocuiți fișierul în siguranță din cPanel

  1. În cPanel deschideți File Manager. Apăsați Settings în dreapta sus, bifați Show Hidden Files (dotfiles) și salvați. Altfel fișierele al căror nume începe cu punct nu se văd.
  2. Intrați în folderul site-ului: public_html pentru domeniul principal sau folderul ales la adăugarea domeniului (îl vedeți în Domains, la Document Root).
  3. Faceți clic dreapta pe .htaccess și redenumiți-l în .htaccess.old. Așa păstrați o copie la care puteți reveni.
  4. Apăsați + File, numiți fișierul .htaccess și creați-l. Clic dreapta pe el, Edit, lipiți regulile pentru CMS-ul dvs. de mai jos și apăsați Save Changes.
  5. Deschideți site-ul într-o fereastră privată a browserului și verificați prima pagină și câteva pagini interne.
  6. Căutați în .htaccess.old blocurile de care mai aveți nevoie și copiați-le neschimbate în fișierul nou (vedeți secțiunea următoare). Când totul merge, ștergeți copia veche.

Ce merită păstrat din fișierul vechi

  • Blocul PHP generat de cPanel. Un bloc marcat # php -- BEGIN cPanel-generated handler, do not edit stabilește versiunea PHP aleasă în MultiPHP Manager. Fără el, site-ul poate rula pe altă versiune PHP. Copiați-l exact cum este.
  • Redirecționarea spre HTTPS sau www. Dacă ați avut-o, puneți-o la începutul fișierului sau refaceți-o după Redirecționări http pe https și www cu .htaccess.
  • Blocul LiteSpeed Cache pe WordPress Hosting și Business Hosting. Nu trebuie copiat: pluginul îl scrie din nou când îi salvați setările (vedeți LiteSpeed Cache pentru WordPress: activare și setări sigure).

Nu mutați în fișierul nou rândurile php_flag sau php_value. Setările PHP se schimbă din cPanel, așa cum arată Selectarea versiunii PHP.

WordPress

Regulile standard ale unui site WordPress instalat direct pe domeniu:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Dacă WordPress este într-un folder, de exemplu example.md/blog, scrieți RewriteBase /blog/ și RewriteRule . /blog/index.php [L]. Mai simplu, blocul se poate rescrie din WordPress: Setări, apoi Legături permanente și „Salvează modificările”, fără să schimbați nimic. Dacă paginile interne tot dau 404, citiți Probleme frecvente în WordPress și cum le rezolvați.

Joomla

Joomla păstrează setul complet de reguli în fișierul htaccess.txt din folderul site-ului. Cea mai simplă reparație este să copiați conținutul lui în .htaccess. Dacă htaccess.txt lipsește, partea de bază de mai jos ajunge pentru adrese ușor de citit și o protecție elementară:

Options +SymLinksIfOwnerMatch
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Pentru Joomla într-un folder adăugați RewriteBase /nume-folder după RewriteEngine On. Ca regulile să fie folosite, în Joomla trebuie activată opțiunea Use URL Rewriting din Global Configuration.

OpenCart

OpenCart vine cu regulile în fișierul .htaccess.txt, iar de obicei e suficient să-l redenumiți. Partea esențială arată așa:

Options -Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|webp|svg|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Pentru un magazin dintr-un folder schimbați RewriteBase / în RewriteBase /shop/. Linkurile ușor de citit cer și opțiunea Use SEO URLs activată în setările magazinului (vedeți Instalare OpenCart în cPanel).

1C-Bitrix

Options -Indexes
ErrorDocument 404 /404.php
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>

Fișierele Bitrix mai vechi conțineau și rânduri php_flag (de exemplu allow_call_time_pass_reference). Aceste setări nu mai există în PHP-ul actual și pot produce eroarea 500, deci nu le includeți.

Drupal, PrestaShop și Magento

  • Drupal are un .htaccess lung, care diferă de la o versiune la alta. Nu îl scrieți manual: descărcați de pe drupal.org arhiva exact a versiunii dvs. și luați fișierul din ea. Fragmentele vechi cu magic_quotes_gpc sau register_globals sunt pentru versiuni PHP care nu se mai folosesc de mult.
  • PrestaShop își generează singur fișierul. În administrare deschideți Shop Parameters, apoi Traffic & SEO, verificați că Friendly URL este activ și salvați: fișierul se scrie din nou. Detalii în PrestaShop în cPanel: instalare rapidă cu Softaculous.
  • Magento are fișiere .htaccess în rădăcină și în folderul pub. Luați-le din pachetul aceleiași versiuni Magento (vedeți Instalarea Magento din Softaculous, pas cu pas).

Dacă site-ul tot nu merge

  • Eroarea 500 imediat după salvare. Cel mai des este un rând Options pe care serverul nu îl permite sau o greșeală de scriere. Puneți # în fața rândurilor Options și reîncărcați pagina. Motivul exact apare în cPanel, la Metrics, apoi Errors. Vedeți și Eroare 500 sau 503 pe site: de unde vin și cum le rezolvați.
  • Fișierul revine mereu la forma greșită. Îl rescrie un plugin sau site-ul este infectat. Verificați și fișierele .htaccess din subfoldere (la WordPress, wp-content și wp-content/uploads) și urmați Sunt viruși pe site-ul meu, ce ar trebui să fac?
  • Prea multe redirecționări. Două reguli se trimit una pe alta, adesea redirecționarea HTTPS dintr-un plugin și cea din fișier în același timp. Păstrați doar una.

Aveți nevoie de ajutor? Deschideți un tichet cu domeniul și spuneți-ne ce CMS folosește site-ul; putem compara fișierul cu o copie de siguranță.

Articole utile

Răspunsul a fost util?