Конфигуриране .htaccess

Файл .htaccess е конфигурационным файл на Apache. Той ви позволява да зададете реакция на сървъра на заявки на потребителя, за да персонализирате кеширане и компресиране, както и да се очертае достъп до различните раздели на сайта,

Възможностите, които предоставя htaccess за конфигурацията на сървъра са твърде големи, за да се поберат в една статия, но ние няма да разглежда всички детайли на конфигурацията на Apache, както разгледаме само основните настройки .htaccess за намаляване на дублирани страници на сайта.


Първо, на сайта има дубликат на главния огледала, сайта се отваря като с www и без него.

Това състояние на нещата е лошо това, че:

  • Обърква потребителя относно правилността на името на сайта
  • Влошава запомняне на името на сайта от потребителя
  • Пречи на паяците на търсачките адекватно да възприемат страница на сайта (роботи на търсачките смятат страница с www и без www различна, а съдържанието в тях дублируемым)

За да се избавите от дубликат на главното огледало .htaccess трябва да предпише:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^crazysquirrel\.ru$ [NC]
RewriteRule ^(.*)$ https://crazysquirrel.ru/$1 [R=301,L]

За да конфигурирате като основен огледала името на сайта без www

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.crazysquirrel\.ru$ [NC]
RewriteRule ^(.*)$ https://www.crazysquirrel.ru/$1 [R=301,L]

За да конфигурирате като основен огледала заглавия с www


На второ място, на сайта има дубликат на файла на сайта (index.html, index.php и т.н.)

Това състояние на нещата е лошо това, че:

  • Влошава вида на основната страница на сайта (много приятно да се види името на сайта, без никакви index отколкото свалете си)
  • Пречи на паяците на търсачките адекватно да възприемат страница на сайта (роботи на търсачките смятат адрес на сайт с индекс, и без него като различни страници и съдържание към тях дублируемым)

За да се избавите от дубликат на файла на сайта трябва да се регистрира .htaccess:

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://crazysquirrel.ru/$1 [R=301,L]

На трето място, дубликати GET (параметри предавани в url след знака ?)

Това състояние на нещата е лошо това, че:

  • Влошава вида на основната страница на сайта (много приятно да се види на URL адреса, без GET параметри, отколкото свалете си)
  • Пречи на паяците на търсачките адекватно да възприемат страница на сайта (роботи на търсачките смятат адрес на сайт с GET и без него като различни страници и съдържание към тях дублируемым)

За да се избавите от два екземпляра GET трябва да се регистрира .htaccess:

RewriteEngine on
RewriteCond %{QUERY_STRING} !^$ [NC]
RewriteCond %{THE_REQUEST} \? [NC]
RewriteCond %{THE_REQUEST} !admin [NC]
RewriteRule ^(.*)?(.*)$ https://crazysquirrel.ru/$1? [R=301,L]

Общото правило, за да се избавите от два екземпляра:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^crazysquirrel\.ru$ [NC]
RewriteRule ^(.*)$ https://crazysquirrel.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://crazysquirrel.ru/$1 [R=301,L]
RewriteCond %{QUERY_STRING} !^$ [NC]
RewriteCond %{THE_REQUEST} \? [NC]
RewriteCond %{THE_REQUEST} !admin [NC]
RewriteRule ^(.*)?(.*)$ https://crazysquirrel.ru/$1? [R=301,L]

По данни конфигурации:

  • RewriteEngine on — директива за включване/изключване на механизма на реализация (написани една върху целия htaccess)
  • RewriteCond %{HTTP_HOST} !^crazysquirrel\.ru$ [NC] — определянето на условията за прилагане на преобразуване само до имена на уеб сайт, различен от желания
  • RewriteRule ^(.*)$https://crazysquirrel.ru/$1[R=301,L] — механизъм за преобразуване на перенаправляющий потребител на "правилното име на сайта"
  • RewriteCond %{QUERY_STRING} !^$ [NC] — определя условие за прилагането на преобразуване само до адреси в които има GET параметри
  • RewriteCond %{THE_REQUEST} \? [NC] — определя състоянието на преобразуване само за адреси да имат ?
  • RewriteCond %{THE_REQUEST} !admin [NC] — определя правила за преобразуване на адреси няма да имат в състава си дирректории или файл административния панел на сайта (ако на сайта не е CMS или за нейната работа не са необходими GET параметри, тази линия може да не пиша)
  • crazysquirrel.bg — името на сайта
  • admin директорията на административния панел на сайта
  • индекс.php — главния файл на сайта
  • R=301 — флаг за определяне на кода на състоянието на http за неправилно сайта (301 — флаг постоянна смяна на адрес)
  • L — флаг, който показва, че дадено правило последна
  • NC — флаг, който показва, че това правило не е от значение за писане на букви
Разгледай и се оставя коментари