Управлении сайтом с помощью файла .htaccess
Содержание
- 1 Примеры использования файла .htaccess
- 1.1 Перенаправление на любую страницу при обработке ошибок на сервере
- 1.2 Редирект на любую страницу по ip пользователя или при запросе конкретной страницы
- 1.3 Редирект при запросе определённых файлов
- 1.4 Редирект по префиксу www (301 редирект)
- 1.5 Запрещение доступа в конкретную директорию
- 1.6 Разрешение доступа в директорию по паролю
- 1.7 Полный редирект
Для изменения различных настроек веб-сервера по отношению к отдельной директории и ко всем вложенным в неё директориям используется файл .htaccess. Является полезным инструментом для создания сайта при внутренней оптимизации сайта, так как позволяет избежать множества проблем, связанным с защитой от взлома и редиректом.
Возможностей файла .htaccess
- Перенаправление на любую страницу при обработке ошибок на сервере (например, ошибка 401, 403, 404, 500);
- Редирект на любую страницу по ip пользователя или при запросе конкретной страницы (а также по маске имени);
- Редирект при запросе определённых файлов;
- Редирект по префиксу www (301 редирект);
- Запрещение доступа директорию для всех;
- Разрешение доступа в директорию по паролю (работает совместно с файлом .htpasswd) или по определённому ip пользователя;
- Полный редирект.
Файл .htaccess можно создать в любом текстовом редакторе, например в Блокноте. Через FTP закачивают файл .htaccess в корень необходимой директории. При этом он будет оказывать действие на все вложенные директории, но только если в них нет своего файла .htaccess, в котором есть другие директивы.
Если необходимо в файле указывать пути, то они указываются абсолютные от корня сервера. Вы можете его узнать у хостера или самостоятельно. Для этого нужно создать файл PHP с любым именем и запустить его на сервере:
PHP код:
<?php phpinfo(); ?>
В информации об установленном PHP (doc_root, open_basedir, DOCUMENT_ROOT) ищем полный абсолютный путь.
Для корректной работы файла .htaccess необходимо чтобы он был разрешён в главном файле конфигурации httpd.conf.
Примеры использования файла .htaccess
Перенаправление на любую страницу при обработке ошибок на сервере
Например, ошибка 401, 403, 404, 500. При возникновении (определении) этих ошибок пользователь будет перенаправлен на соответствующие страницы:
ErrorDocument 401 /error-401.php ErrorDocument 403 /error-403.php ErrorDocument 404 /error-404.php ErrorDocument 500 /error-500.php |
или на главную страницу:
ErrorDocument 401 /index.php ErrorDocument 403 /index.php ErrorDocument 404 /index.php ErrorDocument 500 /index.php |
Редирект на любую страницу по ip пользователя или при запросе конкретной страницы
А также по маске имени, например, если у пользователя ip 192.152.37.125, то он будет перенаправлен на страницу user.php:
SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR=»redir» RewriteCond %{REDIR} redir RewriteRule ^/$ /user.php |
если запрашиваются определённые страницы, то пользователь будет перенаправлен на другие страницы:
Код:
redirect /secret http://www.site.ru/nosecret
Редирект при запросе определённых файлов
Если запрашиваются файлы, расширение которых не указано в файле .htaccess (gif и jpg), то следует перенаправление:
RewriteEngine On RewriteRule !.(gif|jpg)$ index.php |
Редирект по префиксу www (301 редирект)
— с site.ru на www.site.ru:
RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteCond %{HTTP_HOST} ^site$ RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L] |
— с www.site.ru на site.ru:
RewriteEngine onOptions +FollowSymlinksRewriteBase / RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).site.ru$ RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L] |
Запрещение доступа в конкретную директорию
— для всех: deny from all
— к конкретному файлу:
<Files secret.php> deny from all </Files> |
Разрешение доступа в директорию по паролю
Работает совместно с файлом .htpasswd или по определённому ip пользователя.
— по паролю:
Нужны два файла .htaccess и .htpasswd
В файле .htaccess пишем:
AuthName «Danger! Adminka!» (текст предупреждающей надписи) AuthType Basic require valid-user (войдёт любой, кто ввёл правильный пароль) AuthUserFile /home/site.ru/www/adminka/.htpasswd (абсолютный путь к .htpasswd) |
В файле .htpasswd указывается пароль. Создать этот файл можно с помощью htpasswd.exe, которая расположена в директории bin сервера. Создание файла .htpasswd:
- В командной строке перейдите в директорию bin;
- Введите: htpasswd -cm .htpasswd admin;
- Утилита запросит ввод пароля два раза, введите его;
- Если всё сделали успешно, то увидите Adding password for user admin;
- Файл .htpasswd сгенерируется в папке bin.
Затем заливаем оба файла в нужную директорию, и при входе в неё будет запрашиваться логин и пароль. Ваша директория защищена!
— по ip пользователя:
order deny,allow deny from all allow from 192.152.37.125 |
Доступ в данную директорию будет разрешён только пользователю с ip 192.152.37.125.
Полный редирект
Redirect / http://www.itcom.in.ua
Все пользователи, перешедшие на данный сайт, будут перенаправляться на сайт www.itcom.in.ua.
Это лишь некоторые примеры использования файла .htaccess на сайте. Диапазон его использования очень большой, что позволяет успешно решать самые разнообразные задачи при оптимизации сайта и при его управлении.