Администратор |
|
Стаж: 9 лет 1 месяц 14 дней Сообщения: 1233 Откуда: здешние мы
Стиль: subsilver2
Репутация: 11
перейти на сайт пользователя
Найти темы пользователя
|
Файл .htaccess - что такое и его применениеФайл htaccess позволяет производить конфигурирование и переопределение настроек веб-сервера Apache и подобных ему серверов. С его помощью можно установить разрешения и параметры для работы сервера у определенных пользователей хостинга и даже на отдельных папках определенного пользователя. Чаще всего его применяют для создания 301 редиректа со старых URL на новые, переназначение типов файлов, управляемый доступ к каталогом и многого другого. Благодаря файлу htaccess не нужно обращаться к основному файлу конфигураций и затрагивать работу сервера целиком.- Если расположить htaccess-файл в корневой каталог, он распространится на весь сайт (исключения составят только те каталоги, в которых расположен собственный конфигурационный файл, и каталоги, расположенные ниже в древовидной структуре)
- Разместить htaccess-файл можно в любой каталог, а его директивы будут применены ко всем подкаталогам
- htaccess не доступен пользователю для просмотра из браузера, так как относится к категории «системные».
- Таким образом, с помощью htaccess пользователь получает гибкость в настройке собственного сервера и может применять следующие параметры:
* Директивы простого перенаправления (редирект); * Директивы сложного перенаправления (mod_rewrite); * Индексные страницы; * Обработка ошибок; * Определение кодировки; * Управление доступом к директориям и файлам; * Паролирование директорий; * Опции PHP. Не рекомендуется вносить какие-либо изменения в файл конфигурации htaccess до тех пор, пока не будет создана его резервная копия. С ее помощью всегда можно будет вернуть настройки сервера в прежнее состояние.Если вам в файле встретится такая запись: то значок # означает "закомментировано" - то есть системой не читается. подобное делается для удобства дальнейшего применения (типа - пока не надо). Также значок используется для того, чтобы записать необходимую информацию для пользователя (объяснение). Применение файла .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. Код: Выделить всё DirectoryIndex index.shtml index3.php index.html index.htm
Обработка ошибок - директива ErrorDocument
Пользовательская страница ошибок Несмотря на тот факт, что многие на сайтах до сих пор пользуются стандартной страницей ошибок 404, она вряд ли удовлетворит пользователя, который не получил ожидаемого результата и вместо него увидит непонятную для него информацию. Необходимо предложить страницу, которая будет соответствовать основному стилю, на которой будет выводиться более подробная информация о причинах неудачного выполнения запроса. Для этого можно указать в htaccess какой файл грузить вместо стандартной страницы ошибки 404.
Создание своих страниц с описанием ошибок
Для тех, кто устал от привычных страниц, выводящих описание ошибок, произошедших на сайте, предоставляется возможность воспользоваться своими собственными заготовками. Нужно лишь самому сверстать несколько файлов с разрешением *.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-файл.
Определение кодировки на загружаемые файлы
Подобная ситуация может возникнуть в том случае, когда пользователь загружает на сервер файл и его содержимое может быть перекодировано. Чтобы использовалась требуемая кодировка htaccess должен содержать код, указывающий что все загружаемые файлы должны будут открываться с кодировкой UTF-8.
Управление доступом к директориям и файлам
Запретить доступ ко всем файламСамый простой способ запретить просматривать файл – установить пароль, но не всегда этого достаточно. В некоторых случаях у пользователя не должно быть прав на просмотр любых файлов или каталогов (например нужно заблокировать системные каталоги, изменения в которых могут усугубить работу сервера). В htaccess-файле прописывается отрывок кода, лишающий всех привилегий пользователей. Разрешить доступ с определенного 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 "\.(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> Ограничение размера загружаемого файла для PHP20M - это размер файла в мегабайтах Изменить максимальный размер запроса для загрузки в PHP Изменить время исполнения скрипта30 - время исполнения скрипта в секундах. Изменение времени на разбор введенных данных
|
|