Активация на mod_rewrite в Apache2 под Ubuntu 12.04
Инсталацията на Apache2 в Ubuntu 12.04 добавя mod_rewrite, но не го активира.Пълен списък на модулите дошли от инсталация дават следните команди:
## преход в каталога с модули cd /etc/apache2/mods-available ## списък ls
Маркирания в черно е коментираният модул.
Активацията изисква следните стъпки приведени в последователност команди, като първата команда е пореден начин за проверка наличие на модула.
## проверка наличие на модула cat /etc/apache2/mods-available/rewrite.load ## активация на модула sudo a2enmod rewrite ## символична връзка към /etc/apache2/mods-enabled ls -al /etc/apache2/mods-enabled/rewrite.load
Следва малка редакция с предпочитан от вас редактор. Под администраторски права заменете всички изрази AllowOverride None на AllowOverride all и съхранете измененията в файл - /etc/apache2/sites-available/default
## замяна "AllowOverride None" на "AllowOverride all" sudo nano /etc/apache2/sites-available/default ## рестарт на Apache2 - сървър sudo service apache2 restartВ последната команда вместо restart може да се напише reload. Разликата е, че при reload уеб-сървъра препрочита конфигурационния си файл, докато при restart има пълно презареждане, а това е приложимо при отсъствие на външни потребители.
Действия.
Проверка на краен резултат през терминала.
## активни модули в Apache2 apache2ctl -M | sort ## команда-синоним apachectl -t -D DUMP_MODULES | sort
Проверка на краен резултат чрез PHP-файл.
<pre> <?php print_r(apache_get_modules()); ?> </pre>
Относно mod_rewrite
Едни от най-важните директиви на mod_rewrite:- RewriteEngine: Вкл/Изкл на модула за текущата заявка.
- RewriteBase: Задава базовия URL за преобразуване в контекста на каталога.
- RewriteRule: Определя правилото за формиране на URL.
НАЧИН_на_ПРЕОБРАЗУВАНЕ     ПРАВИЛО_на_ПРЕОБРАЗУВАНЕ     [ПАРАМЕТРИ]
Пример
Да речем, че за бъдещ сайт написан по рецептата за MVC-строеж е необходим bootstrap-файл. Това е index.php, а правилата на играта съответно ще се задават от .htaccess.На първо време index.php съдържа приветствие.
<h3>Hello, World!</h3>а .htaccess това.
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /mvc/ RewriteRule !\.(js|gif|png|jpg|css)$ index.php </IfModule>
Тогава, първи ред проверява за наличие на модула. В втори ред става включване. В трети ред се указва корена на бъдещия сайт. В четвърти ред се задава правило според синтаксиса на mod_rewrite. Шаблон на регулярен израз ще следи имената на разширенията на файловете. Всичко различно от зададения диапазон ще се пренасочва към index.php.
При обръщение към родителския каталог става пренасочване към index.php.
При обръщение към несъществуващ HTML-файл отново пренасочване към index.php.
При обръщение към несъществуващ GIF-файл - грешка 404.
до нови срещи ^.^
0 Response to "Активация на mod_rewrite в Apache2 под Ubuntu 12.04"
Публикуване на коментар