Konfiguracja .htaccess

Plik .htaccess jest w pliku konfiguracyjnego Apache. Pozwala on określić reakcję serwera na żądania użytkownika, ustawić buforowanie i ściskanie, a także rozgraniczyć dostęp do różnych sekcji witryny,

Możliwości, które oferuje htaccess do konfiguracji serwera jest zbyt duży, aby zmieścić w jednym artykule, ale nie będziemy traktować wszystkie szczegóły konfiguracji Apache, a oto podstawowe ustawienia .htaccess, aby zmniejszyć duplikatów stron w witrynie.


Po pierwsze, na stronie znajduje się duplikat lustra głównego, strona otwiera się zarówno z www jak i bez niego.

Taka sytuacja źle na tym że:

  • Myli użytkownika względem poprawności nazwy strony
  • Pogarsza się pamięć nazwa witryny przez użytkownika
  • Przeszkadza wyszukiwarek odpowiednio traktować strona serwisu (roboty uważają strony z www i bez www różne, a treści na nich дублируемым)

Do pozbycia się duplikatu lustra głównego .htaccess, należy się zarejestrować:

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

Do ustawienia jako głównego lustra strony nazwa bez www

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

Do ustawienia jako głównego lustra nazwy www


Po drugie, na stronie znajdują się duplikat mózgu pliku strony (index.html, index.php itp.)

Taka sytuacja źle na tym że:

  • Pogarsza się wygląd strony głównej (znacznie przyjemniej jest zobaczyć nazwę strony internetowej, bez żadnych index niż zdjęcie)
  • Przeszkadza wyszukiwarek odpowiednio traktować strona serwisu (roboty uważają adres strony internetowej z indeksu i bez niego, jak różne strony, a treści na nich дублируемым)

Aby pozbyć się duplikatów mózgu pliku serwisu, należy się zarejestrować .htaccess:

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

Po trzecie, duplikaty GET (parametrów przekazywanych w adresie url po znaku ?)

Taka sytuacja źle na tym że:

  • Pogarsza się wygląd strony głównej (znacznie przyjemniej widzieć URL bez GET parametrów niż zdjęcie)
  • Przeszkadza wyszukiwarek odpowiednio traktować strona serwisu (roboty uważają adres strony z GET i bez niego, jak różne strony, a treści na nich дублируемым)

Aby pozbyć się duplikatów GET, należy się zarejestrować .htaccess:

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

Ogólną zasadą jest, aby pozbyć się duplikatów:

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]

W tych konfiguracjach:

  • RewriteEngine on — dyrektywa w sprawie włączenia/wyłączenia mechanizmu konwersji (pisze jedna na cały htaccess)
  • RewriteCond %{HTTP_HOST} !^crazysquirrel\.ru$ [NC] — określa warunki stosowania konwersji tylko do nazwy strony, odmienny od pożądanego
  • RewriteRule ^(.*)$https://crazysquirrel.ru/$1[R=301,L] — mechanizm konwersji kierująca użytkownika na "poprawną nazwę strony internetowej"
  • RewriteCond %{QUERY_STRING} !^$ [NC] — określa warunki stosowania konwersji tylko do adresów które mają GET parametry
  • RewriteCond %{THE_REQUEST} \? [NC] — określa warunek konwersji tylko dla adresów mającym ?
  • RewriteCond %{THE_REQUEST} !admin [NC] — określa zasady konwersji do adresów nie mającym w swoim składzie дирректории lub pliku panelu administracyjnego strony (jeśli na stronie nie ma CMS lub dla jej pracy nie są wymagane GET parametry tej linii można nie pisać)
  • crazysquirrel.pl — tytuł strony
  • admin — katalog panelu administracyjnego strony
  • index.php — główny plik strony
  • R=301, flaga, określający kod stanu http nieprawidłowego strony (301 — flaga stałej zmiany adresu)
  • L — flaga oznaczająca, że reguła ta ostatnia
  • NC — flaga oznaczająca, że od tej reguły nie ma znaczenia wielkość liter pisania
Zobacz i komentarze