Главная страница  /  Занятия  /  #2  /  Файл .htaccess

Файл .htaccess

Задание:

Создать файл .htaccess, содержащий перенаправления и базовую конфигурацию веб-сервера. Необходимо помнить о том, что директивы файла .htaccess действуют для директории, в которой размещен этот файл, а также для всех ее поддиректорий. Если при помощи файла .htaccess нужно изменить настройки для всего сайта в целом, его следует размещать в корневой директории сайта.

Выбор кодировки сайта:

   AddDefaultCharset UTF-8
   php_value default_charset UTF-8

Включение обработки кода PHP в файлах с расширениями .phtml и .php:

   AddType application/x-httpd-php .phtml .php

Настройка индексного файла директории:

   DirectoryIndex index.htm index.html index.phtml index.php

Запрет выдачи листинга директории:

   Options -Indexes

Запрет доступа к сайту с IP-адресов 123.4.5.6 и 123.4.5.7:

   Order Allow,Deny
   Allow from all
   Deny from 123.4.5.6 123.4.5.7

Запрет доступа к сайту со всех с IP-адресов, кроме 123.4.5.6 и 123.4.5.7:

   Order Deny,Allow
   Deny from all
   Allow from 123.4.5.6 123.4.5.7

Запрет доступа к файлам с расширением .inc:

   <Files *.inc>
    Order deny,allow
    Deny from all
   </Files>

Переопределение страниц ошибок:

   ErrorDocument 401 /errors/401.phtml
   ErrorDocument 403 /errors/403.phtml
   ErrorDocument 404 /errors/404.phtml
   ErrorDocument 500 /errors/500.phtml

Постоянное перенаправление с кодом 301:

   Redirect 301 /olddirectory/ https://mysite.ru/newdirectory/
   Redirect 301 /oldfile.html https://mysite.ru/newfile.html

Перенаправление с www.mysite.ru на mysite.ru:

   RewriteEngine on

   RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
   RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Перенаправление с http://mysite.ru на https://mysite.ru:

   RewriteEngine on

   RewriteCond %{HTTPS} off
   RewriteCond %{HTTP:X-Forwarded-Proto} !https
   RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Парольный доступ к дирректории:

Файл .htaccess:

   AuthType Basic
   AuthName admin
   AuthUserFile "/absolute/path/to/file/on/server/.htpasswd"
   require valid-user

Файл .htpasswd:

   admin:$apr1$gihsuk2b$Nxg.etdEpTO06F.sXPXPo1
   vasya:$apr1$4qe9hojt$NJIFo6xXrIhINW6kKgVqG0

Для того, чтобы узнать абсолютный путь до файла .htpasswd на сервере, разместите в той же директории PHP-документ со следующит содержимым:
   <?
    echo __DIR__.'/.htpasswd';
   ?>

и запустите его в браузере, набрав URL «https://yourfamilyname.ktno.ru/path/to/htpasswd/file/scriptname.php».