Запрет доступа к файлам через mod_rewrite
![Запрет доступа к файлам через mod_rewrite](/images/articles/php-modrewrite-forbidden.jpg)
Недавно меня попросили написать цикл статей о mod_rewrite. Я решил, что эта тема будет интересна многим, поэтому с этой статьи будет несколько штук по этой теме. Mod_rewrite - это модуль Apache (на других серверах его нет), который позволяет управлять URL-адресами. И начнём мы с запрета доступа к определённым файлам через mod_rewrite.
Допустим, у нас есть файл на сервере, пусть он называется secret.php. И мы хотим, чтобы пользователь из браузера не смог к нему получить доступ. Чтобы введя "http://mysite.ru/secret.php", ему вывелось "Forbidden", то есть 403-я ошибка.
Для этого напишем в файле .htaccess следующий код:
RewriteEngine on
RewriteRule ^secret.php$ - [F]
В первой строчке мы включаем модуль mod_rewrite. Вторая строчка сложнее:
- RewriteRule - основной механизм mod_rewrite, отвечающий как раз за различные преобразования.
- ^secret.php$ - регулярное выражение. Если запрашиваемый файл будет отвечать этому регулярному выражению, то тогда будет срабатывать якорь [F], о котором написано ниже. Что касается регулярного выражения, то тут всё просто: ^ - начало строки, $ - конец строки, secret.php - само название файла. ^ и $ написаны для того, чтобы RewriteRule не срабатывал на, например, такие файлы: "nosecret.php" или "secret.php.html".
- [F] - означает, что необходимо вызвать ошибку Forbidden.
Вот таким образом делается запрет доступа к файлам через mod_rewrite. В последующих статьях мы продолжим изучение модуля mod_rewrite.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.