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