Какво е .htaccess?
.htaccess (hypertext access) е конфигурационен файл за Apache web сървъри, който има въздействие в рамките на директория и нейните поддиректории. Чрез този файл вие можете да направите промени в настройките на сървъра за вашия сайт без да имате достъп до основния конфигурационен файл на сървъра. Има подръжка от всички версий на Apache web сървъра.

Как да създам .htaccess файл?
За да създадете .htaccess файл е необходимо да отворите текстов редактор или такъв с който сте свикнали да работите /можете да ползвате стандартния редактор под Windows - Notepad, MacOS - TextEdit, Linux - директно с командата pico .htaccess, която изпълнявате в конзола/ .
След като създадете файла можете да го запаметите като .htaccess файл или htaccess.txt. В случай че вашата операционна система не разпознае файл с точка отпред го създайте с .txt разширение и след като го качите с помоща на FTP клиент можете да го преименовата на .htaccess.
Необходимо да спазвате правилния синтаксис на командите за да бъдат изпъленени правилно, в противен случай няма да работи коректно.

.htaccess файла не работи, какво да правя?
Проверете вашия текстов редактор да не би да е записал файл като .htaccess.txt. Можете да видите това като го качите чрез FTP програма и ще видите неговото разширение. Необходимо е да го промените на правилното .htaccess.

Голям част от FTP клиентите използват коректни права при качването на файловете. Ако в конкретния случай не са правилни задайте следните 644. Така файла ще има права read/write.
Подробна информация за правата можете да намерите на следния адрес: [http://en.wikipedia.org/wiki/Filesystempermissions](http://en.wikipedia.org/wiki/Filesystempermissions "http://en.wikipedia.org/wiki/Filesystem_permissions")

Ако сте допуснали синтактична грешка в .htaccess файла е възможно да се появи грешка ( Error: 500 Internal Server Error ) при отваряне на вашия сайт.
- в този случай е необходимо да свалите и коригирате вашия .htaccess файл, но за да работи сайта Ви нормално можете да го преименувате временно

Начин и употреба! Как да използвам .htaccess файла в моя ползва?
Тук ще Ви опиша някой от най-използваните команди за .htaccess.

Как да блокирате достъпа до сайта Ви от определно IP или от определена мрежа, както и да разрешите достъпа само за определени адреси или мрежа.

Как да оставим коментар?

За да оставите коментар във вашия .htaccess файл /което е желателно за да може ваш колега да разбере какво сте направили и до къде сте стигнали/ е необходимо да поставите само знака "#" - диес. След като сте написали знака "#" можете да опишете вашия коментар.

Ето пример:

*#забраних достъпа до всичко защото имаше атака order deny,allow deny from all *

Как да забраня достъпа до сайта ми от определени IP адреси?

Със следния код правите забрана за определени IP-та или цяла мрежа до вашите данни:

*order allow,deny allow from all deny from 94.75.217.0 # и този медот е валиден deny from 94.75.218.0/24 # този медот се ползва най-чест deny from 91.215.218.212*

Как да защитите директория или само определен файл?
Необходимо е да опишете следната информация въва вашия .htaccess файл:

*# В случая искам да защитя директория newsite AuthUserFile /home/user/www/newsite/.htpasswd AuthGroupFile /dev/null AuthName "Protected Directory" AuthType Basic*

*<Limit GET POST> require user newuser </Limit>*

За да работи правилно е необходимо да създамем файл с име .htpasswd и в него да опише желания потребител и парола. Като съдържание трябва да изглежда по следния начин:

*#това ще бъдат данните за достъп*

*potrebitel:parola*

След което можете да направите тест като отворите през браузър посочената папка.

Ако желаете да направите защита само на един определен файл можете да го направите по следния начин:

*<Files вашияІфайл.php> AuthUserFile /home/user/www/.htpasswd AuthName "Protected File" AuthType Basic Require valid-user </Files>*

Този файл може да има още много други функционалности, които може да видите по-долу.

Пренасочване от http:// към https://

*RewriteEngine On

RewriteCond %{SERVER_PORT} !443

RewriteRule (.*) https://www.yoursite.com/$1 [R=301,L]*

Пренасочване към www. зоната на домейна

*RewriteEngine on

RewriteCond %{HTTP_HOST} ^domain.com [NC]

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]*

Зареждане на сайта без www. зоната

*RewriteEngine on

RewriteCond %{HTTP_HOST} .

RewriteCond %{HTTP_HOST} !^domain.com

RewriteRule (.*) http://domain.com/$1 [R=301,L]*

Когато искате сайта да зарежда, без да показва index.php в лентата на браузера (http://mysite/index.php) е нужно да използвате тези редове

*RewriteEngine on

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*index.php HTTP/

RewriteRule ^(.*)index.php$ /$1 [R=301,L]*

Пренасочване на целия сайт към друг такъв

*Redirect 301 / http://www.example.com/*

Ако желаете да пренасочите конкретно някоя директория или дори файл от Вашия сайт към друг сайт (http://mysite.com/test/index.html --> http://othersite.com) може да ползвате следното

*Redirect 301 /oldpage.html http://www.example.com/newpage.html*

или

*Redirect 301 /test/oldpage.html http://www.example.com/*

Може да решите с приоритет да се зарежда index.php вместо index.html

*RedirectMatch 301 (.*).html$ http://www.example.com$1.php*

Ако искате да забраните достъпа до сайта Ви от чужбина

*GeoIPEnable On

SetEnvIf GEOIP_COUNTRY_CODE BG AllowCountry

order deny,allow

allow from env=AllowCountry

deny from all*

За забрана на достъпа до сайта от определена страна може да ползвате това (в този пример е забранен достъпа от Турция и Русия)

*GeoIPEnable On

SetEnvIf GEOIP_COUNTRY_CODE TK BlockCountry

SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

order allow,deny

Deny from env=BlockCountry

Allow from all*