За какво се използва .htaccess?

+7 гласа
327 прегледа
попитан 2016 юни 16 от Veronika.Georgieva. (1,460 точки)
Участвам в един нов проект, но не знам какво е .htaccess, колегите ми казаха, че имам 24 часа да разбера, а ако разбера и как се ползва ще е супер. Благодаря предварително.

2 отговори

+1 глас
отговорени 2016 юни 16 от code (2,460 точки)
Това е файл, който се разполага в публично видима директория в която са файловете за даден сайт. Той служи, за да зададе първоначалното "поведение" което трябва да се осъществи при опита за отваряне на конкретна уеб страница. Не съм сигурен дали се ползва при всички уеб сървъри, но при най-разпространиният (Apache) се ползва.

Дотук предполагам, че нищо не разбра. Нормално. Затова най-добрият начин да научиш какво е .htaccess е да си създадеш като начало примерно безплатен хостинг акаунт. Примерно 000webhost.com е приемвил избор. След това създаваш нов акаунт (Create new account). Избираш поддомейн. Влизаш в cPanel-а на този акаунт, но след като се създаде. Намираш "File Manager" (намира се някъде надолу по страницата). Може да се наложи да го затвориш и отвориш наново. Преминаваш към директория public_html. Ако виждаш ".htaccess" файл в списъка - тогава натискаш Edit. Ако не, то натискаш бутона "New File" и създаваш в отворилият се текстов редактор файл с име точно ".htaccess".

Като съдържание може да поместиш ред от вида: "ErrorDocument 404 /error.php". Чрез този ред указваш, че ако се отвори несъществуваща страница, тогава трябва да се изпълни скрипта, който е записан във файл "error.php" (който ти трябва да създадеш и попълниш). Има и много други неща, които могат да се правят като настройки в ".htaccess", като едно от най-използваните е така наречения mod_rewrite. Нещата се оказват доста дълги, за да се описва по-подробно в една тема...
коментиран 2016 юни 16 от Deyan Delev (1,830 точки)
:)

Де факто ‘.htaccess’ не е файлово разширение, а файл. Точката пред името означава, че в UNIX базираните системи този файл ще бъде скрит.
Най-общо казано файла .htaccess служи за контролиране на достъпа до съдържанието на уеб сървъра (Аpache), например директорията public_html/, където е разположено съдържанието на вашият уеб сайт. Реално, обаче .htaccess действа като поднабор от команди към глобалния конфигурационен файл на сървъра (httpd.conf), в директорията, в която е разлоположен (примерно public_html/). Първоначалната идея на .htaccess – както и името му подсказва – е да контролира достъпа до определени директории, например с парола. В практиката .htaccess най-често  се използва за да определи или презапише други конфигурации като вид на съдържание, енкодинг на текстa, CGI-та и др.

Други приложения на .htaccess :

-    Авторизация и автентикация;
-    URL презаписване;
-    Блокиране на IP адреси;
-    Разрешаване на SSI (включвания от страната на сървъра);
-    Модифицирани отговори за грешки (например грешка 404);
-    Инструктиране за това, как сървъра да се държи с определи MIME (Медийно съдържание);
-    Контрол върху кеширането;
коментиран 2016 юни 16 от Veronika.Georgieva. (1,460 точки)
Благодаря за отговорите, сега ще пробвам примера през cPanel-a
0 гласа
отговорени 2016 юни 16 от Nolongerexists2 (1,790 точки)

.htaccess е файл който главно променя настройките на вашият сървър. Например ако искате дадено IP да няма достъп до вашата страница .htaccess файла ще предостави тази възможност.


Ако вече нямате такъв файл то създадете го във вашата папка със сайта, като отворите който и да е текстов редактор след това го записвате под името ' .htaccess '.
Ще дам няколко примера за това какво може да прави .htaccess
1. Как да позволим само ние да влизаме в нашият сайт

order deny,allow

deny from all // Забраняваме за всички

allow from <нашето IP>  // Позволен достъп само за даденото IP

2. Ако искате вашият сайт да няма php/html разширения:

RewriteEngine on

RewriteRule ^user/([0-9a-zA-Z]+) profiles/index.php?nickname=$1 [NC,L]

Сега нека да го обясня

^user/ - Тази част от .htaccess кода ще добавя към URL вместо

Преди : www.saita.com/profiles/index.php?nickname=neshtosi

След  : www.saita.com/user/neshtosi

([0-9a-zA-Z]+) - Избира от големи букви до малки букви също така към това число спадат и цифрите.

profiles/index.php?... - Това е директорията където се намира файла ако index.php(зависи как сте кръстили .php файла може да е profile.php) се намира в css то .htaccess файла ще придобие следният вид

RewriteRule ^user/([0-9a-zA-Z]+) css/index.php?nickname=$1 [NC,L]

nickname=$1 - Nickname е името на променливата Ви а $1 е валутата


3. Прехвърляне към URL ако файлът не съществува(404)

ErrorDocument 404 /primer.php

primer.php - Това е страницата към която ще ни прехвърля;

Според мен това са най-важните .htaccess функции които всеки програмист трябва да знае.

...