info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ]  Просмотры: 2517

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 8 лет 6 месяцев 28 дней
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Файл .htaccess - что такое и его применение

Файл htaccess позволяет производить конфигурирование и переопределение настроек веб-сервера Apache и подобных ему серверов. С его помощью можно установить разрешения и параметры для работы сервера у определенных пользователей хостинга и даже на отдельных папках определенного пользователя.
Чаще всего его применяют для создания 301 редиректа со старых URL на новые, переназначение типов файлов, управляемый доступ к каталогом и многого другого. Благодаря файлу htaccess не нужно обращаться к основному файлу конфигураций и затрагивать работу сервера целиком.


  1. Если расположить htaccess-файл в корневой каталог, он распространится на весь сайт (исключения составят только те каталоги, в которых расположен собственный конфигурационный файл, и каталоги, расположенные ниже в древовидной структуре)
  2. Разместить htaccess-файл можно в любой каталог, а его директивы будут применены ко всем подкаталогам
  3. htaccess не доступен пользователю для просмотра из браузера, так как относится к категории «системные».
  4. Таким образом, с помощью htaccess пользователь получает гибкость в настройке собственного сервера и может применять следующие параметры:

    * Директивы простого перенаправления (редирект);
    * Директивы сложного перенаправления (mod_rewrite);
    * Индексные страницы;
    * Обработка ошибок;
    * Определение кодировки;
    * Управление доступом к директориям и файлам;
    * Паролирование директорий;
    * Опции PHP.

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


Если вам в файле встретится такая запись:

Код: Выделить всё

#<IfModule mod_rewrite.c>


то значок # означает "закомментировано" - то есть системой не читается.
подобное делается для удобства дальнейшего применения (типа - пока не надо).
Также значок используется для того, чтобы записать необходимую информацию для пользователя (объяснение).

Применение файла .htaccess:

перенаправления на новые страницы сайта
Если на сайте были перемещены страницы на новые адреса, то пользователь или поисковый робот, обратившись по старому адресу, наверняка их не увидит. Чтобы склеить старый и новый адреса страницы можно применить простой 301 редирект. Для этого в файле конфигурации htaccess необходимо прописать следующий код:

Код: Выделить всё

Redirect 301 /staraya.html http://vash-sait.ru/novaya.html

Перенаправление домена с www на без www
Очень часто приходится использовать 301 редирект в htaccess для склеивания доменов с www и без www. Раньше поисковые системы считали такие адреса совершенно различными и смотрели на них как на разные сайты. Сегодня задача по склейке возлагается на поискового робота, но никогда не лишним будет указать корректное зеркало. К тому же, у самих не будет никакой путаницы.

Код: Выделить всё

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.vash-sait\.ru$ [NC]
RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]

Перенаправление посетителей на разные старницы в зависимости от IP-адреса посетителя
В htaccess имеется возможность указать на какую страницу, будет перенаправлен пользователь с конкретным IP-адресом. Например, перенаправление посетителей с ip адресом 183.11.101.1 на страницу kontakt.html

Код: Выделить всё

SetEnvIf REMOTE_ADDR 183.11.101.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /kontakt.html

Защита от хотлинков
Не для кого не секрет, что сегодня все чаще воруют информацию с сайтов. Иногда только текстовую, а иногда и вместе с графическими изображениями. И каждый раз когда на сторонний сайт будет приходить посетитель эти изображения будут грузится с вашего хостинга создавая нагрузку и сжигая трафик. Чтобы это предотвратить добавляем следующий код:

Код: Выделить всё

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] \.)?vash-sait\.ru [NC]
RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]


В приведенном выше примере на сайте грузящем изображение будет появляться ошибка 403, если желаете чтобы вместо картинки отображалась определенная картинка, то последнюю строку замените на следующую:

Код: Выделить всё

RewriteRule \.(jpg|png|gif)$ http://vash-sait.ru/images/imageinfo.jpg [NC,R,L]

Перенаправление на безопасное https-соединение
В .htaccess можно настроить перенаправление на безопасное https соединение, чтобы все пользователи работали только через данный протокол, гарантирующий безопасность и надежность передачи данных между сервером и клиентом.

Код: Выделить всё

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Блокировка пользователей пришедших с определенного сайта
Если владелец сайта не хочет, чтобы его ресурс посещали пользователи, зашедшие с определенного домена и требуется им закрыть доступ - htaccess также готов помочь. Вы можете перекрыть трафик с определенных сайтов используя страницу 403 или «запрет доступа». Полезна данная настройка тогда, когда на ваш сайт появились ссылки с сайтов с запрещенным контентом и по ним идет трафик на ваш сайт.

Код: Выделить всё

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} zapretnui-sait.com [NC,OR]
RewriteCond %{HTTP_REFERER} zapretnui-sait.com [NC,OR]
RewriteRule .* - [F]
</ifModule>

Индексные страницы - директива DirectoryIndex
Изменение индексной старницы загружаемой по умолчанию

Обычно по умолчанию индексными страницами является index.htm, index.php или index.html, при обращении к директории сайта сразу происходит поиск данных файлов. Но при необходимости можно переопределить индексную страницу на любую другую. Подобная задача также решается с использованием htaccess-файла.

Код: Выделить всё

DirectoryIndex mypage.html


Имеется возможность указать две и более страницы. Стоит учитывать, что они будут отыскиваться в той последовательности, в которой перечислены в конфигурационном файле за директивой DirectoryIndex.

Код: Выделить всё

DirectoryIndex index.shtml index3.php index.html index.htm

Обработка ошибок - директива ErrorDocument
Пользовательская страница ошибок

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

Код: Выделить всё

ErrorDocument 404 "/404.html"

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

Код: Выделить всё

ErrorDocument 401 /errors401.html
ErrorDocument 403 /errors403.html
ErrorDocument 404 /errors404.html
ErrorDocument 500 /errors505.html


Чтобы вы знали что помещать в каждую из страниц ошибок, кратико опишем их значения.

401 — Требуется авторизация (Authorization Required)
403 — пользователь не прошел аутентификацию, запрет на доступ (Forbided)
404 — запрашиваемый документ (файл, директория) не найден (Not Found)
500 — внутренняя ошибка сервера — ошибка скрипта или ошибка в синтаксисе файла .htaccess - (Internal Server Error)

Определение кодировки
Чтобы у пользователя на дисплее монитора не выводились непонятные для него символы, из которых не представляется возможности прочесть слова, необходимо указать корректную кодировку. Даже при отсутствии тега < Мета http-equiv = "Content-Type"> текст на странице будет всегда корректным и поможет в этом снова htaccess-файл.

Код: Выделить всё

AddDefaultCharset UTF-8

Определение кодировки на загружаемые файлы
Подобная ситуация может возникнуть в том случае, когда пользователь загружает на сервер файл и его содержимое может быть перекодировано. Чтобы использовалась требуемая кодировка htaccess должен содержать код, указывающий что все загружаемые файлы должны будут открываться с кодировкой UTF-8.

Код: Выделить всё

CharsetSourceEnc UTF-8

Управление доступом к директориям и файлам
Запретить доступ ко всем файлам

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

Код: Выделить всё

deny from all


Разрешить доступ с определенного IP

Но не всегда требуется заблокировать доступ к файлам всем и сразу, иногда нужно создать список исключений с пользователями, которые смогут продолжать работать, имея стандартные права.

Код: Выделить всё

order allow deny
deny from all
allow from 192.112.12.198


Для этого используются директивы order (далее указывается порядок выполнения директив), deny (директива, с помощью которой запрещается всем и ко всему), allow (директива, за которой следует IP-адрес, попадающий в список исключений и открывающий ему доступ к директивам и файлам). Стоит также отметить, что директивы deny и allow должны следовать именно в этом порядке, иначе действие директивы allow будет перекрыта директивой deny и не даст ожидаемого результата.


Запретить доступ с определенного IP

В htaccess можно указать IP-адреса, для которых будет установлены ограниченные права доступа.

Код: Выделить всё

order allow deny
deny from all
deny from 192.112.12.198


Запретить доступ к определенному файлу

Можно закрыть доступ к любому из файлов, тем не менее скрипты, если возникнет необходимость, смогут продолжить его использовать. Для этого используется следующий код:

Код: Выделить всё

<Files set.php>
deny from all
</Files>


Ограничить доступ к определенному типу файлов

Код: Выделить всё

<Files "\.(htm|sql|...указать еще расширения...)$">
order allow,deny
deny from all
</Files>

Опции PHP
Заставить работать PHP скрипты в HTML файлах

Код: Выделить всё

RemoveHandler .php .htm .html
AddHandler application/x-httpd-php .php .htm .html


Заставить выполнять PHP в файлах JavaScript

Код: Выделить всё

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>


Ограничение размера загружаемого файла для PHP

Код: Выделить всё

php_value upload_max_filesize 20M


20M - это размер файла в мегабайтах


Изменить максимальный размер запроса для загрузки в PHP

Код: Выделить всё

php_value post_max_size 10M


Изменить время исполнения скрипта

Код: Выделить всё

php_value max_execution_time 30


30 - время исполнения скрипта в секундах.


Изменение времени на разбор введенных данных

Код: Выделить всё

php_value max_input_time 60





трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
.htaccess
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 0, из них зарегистрированных: 0, скрытых: 0 и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 0

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 19 апр 2024, 23:06

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид