Файлът .htaccess е конфигурационен файл на ниво директория, поддържан от уеб сървъра Apache. Той ви позволява да променяте настройките на уеб сървъра (като активиране или деактивиране на функции) за конкретен акаунт, без да засягате глобалната конфигурация на сървъра.
Този файл прилага своите настройки към цялата директория, в която се намира, включително всички файлове и поддиректории в нея. Всички промени, направени във файла .htaccess, се прилагат незабавно, без необходимост от рестартиране на сървъра.
За да намерите файла .htaccess:
1. Влезте във вашия Spaceship акаунт >> изберете Hosting Manager в Launchpad >> Manage до хостинг план >> Files and Storage >> Manage Files до името на уебсайта.
2. Ще бъдете пренасочени към основната папка на домейна.
3. Ако трябва да редактирате файла .htaccess за домейна, намерете файла .htaccess в основната папка на домейна, щракнете с десния бутон върху него и изберете опцията Edit :

ЗАБЕЛЕЖКА: Уверете се, че "Show Hidden Files (dotfiles)" е активирано в менюто Settings:

4. Ако няма файл .htaccess във File Manager, можете да създадете нов с бутона + File:

5. Готови сте да добавите свои собствени конфигурационни правила и да ги запазите.
Този метод ви позволява да блокирате потребители въз основа на техния IP адрес или домейн. Особено полезен е за ограничаване на достъпа на нежелани посетители или за ограничаване на достъпа до определени секции на вашия уебсайт, като например административната зона, само за собственика.
За да приложите конкретни правила за блокиране, създайте .htaccess файл със следното съдържание:
(За разрешаване на достъп на всички останали и блокиране на потребители с IP адрес X.X.X.X)
<RequireAll>
Require all granted
Require not ip X.X.X.X
</RequireAll>
(За блокиране на всички посетители, с изключение на конкретните IP адреси X.X.X.X и Y.Y.Y.Y)
<RequireAll>
Require all denied
Require ip X.X.X.X
Require ip Y.Y.Y.Y
</RequireAll>
ЗАБЕЛЕЖКА: Не използвайте остарелите директиви Allow, Deny и Order заедно с новата директива Require директива.
Mod_Rewrite определя как уеб страниците и URL адресите се представят на посетителите.
По подразбиране Mod_Rewrite съпоставя URL адрес с отговарящ път във файловата система. Въпреки това, може също да пренасочва един URL към друг.
Преди да настроите пренасочване, важно е да изберете типа пренасочване, който най-добре отговаря на вашите нужди:
Постоянно пренасочване (301): Това пренасочване изпраща статус код 301, което означава, че страницата е преместена постоянно. То се кешира в браузъра и сигнализира на търсачките и потребителските агенти да актуализират URL адреса в своите бази данни. Това е най-често използваният тип пренасочване.
Временно пренасочване (302): Това пренасочване изпраща статус код 302, което означава, че преместването е временно. Браузърът няма да кешира това пренасочване и въпреки че ще пренасочи посетителите и търсачките, оригиналната страница ще продължи да се индексира. Този тип пренасочване се препоръчва, освен ако не сте сигурни, че URL адресът няма да се промени в бъдеще.
По-долу е даден списък с някои от най-често използваните и полезни пренасочвания, които могат да бъдат конфигурирани чрез файла .htaccess:
Постоянно пренасочване от example1.com към example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]
Временно пренасочване от exampledomain1.com към exampledomain2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]
ЗАБЕЛЕЖКА: По-долу са дадени примери за постоянни пренасочвания. Временни пренасочвания могат да се дефинират чрез замяна на [R=301,L] с [R=302,L] в края на кода (където е необходимо).
Пренасочване от example1.com/subfolder към example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]
Пренасочване от HTTP към HTTPS за example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R,L]
или
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Пренасочване от non-WWW към WWW
за всеки домейн, .htaccess влиза в сила:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
за определен домейн:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Пренасочване от WWW към non-WWW
за всеки домейн .htaccess влиза в сила:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
за определен домейн:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Пренасочване на всички страници от example.com към съответните страници на domain.com
RedirectMatch 301 ^/(.*)$ http://domain.com/$1
ЗАБЕЛЕЖКА: Имената на всички страници трябва да съвпадат и на двата домейна, в противен случай пренасочването ще доведе до съобщение "Page not Found".
Пренасочване на една страница към нов URL адрес
Redirect 301 /old_page.html http://www.domain.com/new_page.html
ЗАБЕЛЕЖКА: Тази техника може да бъде полезна за пренасочване на изтрита страница към грешка 404 или за SEO корекции след актуализиране на съдържанието.
Този тип правило определя ограничения за сигурност за директория или поддиректория. Можете да защитите директории с парола, така че всеки посетител, който се опита да ги достъпи, ще бъде подканен да въведе потребителско име и парола.
За да настроите тази защита:
1. Създайте директорията, която искате да защитите, в папката /home/cpanel_user/.htpasswds/ (например за domain.com/test, пътят е .htpasswds/domain.com/test/).
2. В тази директория създайте файл passwd и добавете хеширани данни за достъп с помощта на онлайн генератор.
3. Добавете следните директиви във файла .htaccess:
AuthType Basic
AuthName "Directory Name"
AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"
require valid-user
Тази функция ви позволява да създавате персонализирани страници за грешки за вашия уебсайт. Това е полезна опция, тъй като ви позволява да представите на посетителите съобщение за грешка, което съответства на темата на вашия сайт, ако има неработещи URL адреси. Това помага да се избегне показването на стандартната грешка '404 File Not Found' и вместо това връща персонализирана страница за грешка с инструкции за връщане към съдържанието на сайта, предотвратявайки объркване.
За да настроите персонализирана страница за грешка, добавете следния текст във файл .htaccess:
ErrorDocument 404 /404.html
Този ред инструктира уеб сървъра Apache да зареди файл 404.html, разположен в основната директория на домейна, когато възникне грешка 404 (File Not Found).
ЗАБЕЛЕЖКА: За да създадете персонализирани страници за други грешки (като 403 или 500), просто заменете 404 със съответния код за грешка и /404.html с пътя до вашия персонализиран файл за грешка.
Ако трябва временно да деактивирате някои от съществуващите правила, например за тестови цели, можете лесно да ги коментирате. За да направите това, просто добавете знак за хаш (#) в началото на реда.
Като алтернатива можете да деактивирате един ред или блок от редове, като ги изберете и използвате клавишната комбинация Ctrl + / .