Конфигуриране на mod_rewrite на Apache Web Server на CentOS 7
Оферта от 8host.com

Apache е модулен уеб сървър (т.е. позволява ви да персонализирате функции чрез активиране и деактивиране на модули). Това дава възможност на администраторите да настройват фино настройките на уеб сървъра, за да отговарят на изискванията на приложението.
Това ръководство ще ви помогне да инсталирате Apache на сървър CentOS 7 и да настроите поддръжката на mod_rewrite.
Изисквания
- CentOS 7 сървър.
- Потребител с достъп до sudo (подробности могат да бъдат намерени в Създаване на потребител на sudo в CentOS).
Стъпка 1 Инсталиране на Apache
Apache може да се инсталира с помощта на мениджъра на пакети yum.
sudo yum инсталирайте httpd
Командата ще поиска потвърждение:
За да продължите с инсталацията, въведете Y и натиснете Enter.
Стартирайте демона Apache (това е самостоятелен процес, който създава набор от дъщерни процеси или нишки за обработка на заявки):
sudo systemctl стартирайте httpd
За да проверите дали Apache стартира успешно, въведете:
sudo systemctl status httpd . . . systemd[1]: Стартиране на HTTP сървъра Apache. systemd[1]: Стартира Apache HTTP сървъра.
Apache сървърът е инсталиран успешно. Сега трябва да се съсредоточим върху модулите.
2: модул mod_rewrite
В CentOS 7 модулът mod_rewrite се поддържа по подразбиране. Проверете дали това е така. Използвайте командата httpd с флага -M, за да изброите включените модули:
httpd -M . . . remoteip_module (споделен) reqtimeout_module (споделен) rewrite_module (споделен) setenvif_module (споделен) slotmem_plain_module (споделен) . . .
Ако rewrite_module не е в списъка, активирайте го ръчно.Редактирайте 00-base.conf.
sudo vi /etc/httpd/conf.modules.d/00-base.conf
# # Този файл зарежда повечето от модулите, включени в самия HTTP # сървър на Apache. # . . . LoadModule rewrite_module modules/mod_rewrite.so . . .
За да излезете от режима на вмъкване, натиснете Esc. Натиснете :x и Enter, за да запазите и затворите файла.
Актуализирайте настройките на уеб сървъра:
sudo systemctl рестартирайте httpd
Сега можем да започнем да създаваме файла .htaccess.
Стъпка 3: Създаване на .htaccess файл
Файлът .htaccess дефинира отделни директиви на Apache (включително RewriteRule) за всеки отделен домейн.
Забележка : В Linux имената на скритите файлове започват с точка.
Първо трябва да активирате поддръжката на .htaccess файлове. За да направите това, редактирайте директивата AllowOverride:
sudo vi /etc/httpd/conf/httpd.conf
Намерете секцията в този файл. Той съдържа AllowOverride. Променете стойността None на All.
Запазете и затворете файла. Рестартирайте Apache:
sudo systemctl рестартирайте httpd
Създайте .htaccess файл в основната директория на стандартния документ (/var/www/html):
sudo vi /var/www/html/.htaccess
Добавете следния ред в горната част на файла, за да активирате RewriteEngine. Това ще позволи на Apache да обработи правилата за пренаписване.
Сървърът вече има .htaccess файл, който ви позволява да задавате правила за пренаписване на URL адреси. Преди да започнете да пишете тези правила, трябва да се запознаете със синтаксиса mod_rewrite.
4: Синтаксис на RewriteRule
Заместване на шаблон на RewriteRule [Флагове]
- RewriteRule: Самата директива.
- Модел: библиотека PCRE (съвместим с Perl регулярен израз). Повече информация за това можете да намерите тук.
- Замяна: къде да изпратите входящата заявка.
- [Флагове]: незадължителни параметри, които променят поведението на правилото. Списък с налични флагове може да бъде намерен в документацията на Apache.
Директивата RewriteRule е много важна за mod_rewrite.
5: Синтаксис RewriteCond
Директивата RewriteCond ви позволява да добавяте условия към правило за пренаписване. Условието за презаписване се състои от следните компоненти:
RewriteCond TestString условие [Флагове]
- RewriteCond: директива.
- TestString: Низът, който ще се тества.
- Условие: Моделът, на който низът трябва да съответства.
- [Флагове]: незадължителни параметри.
С директивата RewriteCond Apache извършва пренаписване само ако определено условие е вярно.
Стъпка 6: Създайте тестов файл
Създайте просто правило, което ще позволи на потребителите да имат достъп до страницата about.html без разширението (.html). Първо създайте файл about.html в основната директория на документа:
sudo vi /var/www/html/about.html
Копирайте следния HTML код и го поставете във файла: