Трюки с htaccess: htaccess доступ, htaccess кодировка, htaccess запреты. Перенаправление на безопасное соединение https. Пользовательская страница ошибок

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

Чтобы запретить доступ ко всему сайту, необходимо в файле.htacces написать следующее:



Запретить доступ только с конкретного ip-адреса:


deny from all
order allow deny
deny from all
deny from ip_адрес_пользователя


"ip_адрес_пользователя " необходимо заменить на конкретный ip-адрес.

Чтобы разрешить доступ только с конкретного ip-адреса, можно написать:


order allow deny
deny from all
allow from ip_адрес_пользователя


Так же с помощью файла.htaccess можно запретить доступ к конкретному файлу. Например, запретим доступ пользователей к самому файлу.htaccess. При этом сервер сможет использовать инструкции, указанные в файле:


< Files .htaccess >
order allow,deny
deny from all

Защита файлов

Наверное, всем пользователям интернета попадались одинаковые статьи на различных сайтах. Очень часто бывает, что эти статьи попросту сворованы с других ресурсов. Поисковые системы стараются бороться с дублированными страницами, но выбор ими первоисточника не всегда оказывается верным. И это является серьезной проблемой для копирайтеров и веб-мастеров, так как на написание качественного контента, порой, уходит большое количество сил и времени, и очень неприятно обзавестись штрафными санкциями поисковиков за то, что кто-то скопировал контент с Вашего сайта. А зачастую, вместе с текстом воруют так же и изображения. Причем, многие воры, чтобы не перегружать свой сервер, не скачивают изображение с чужих сайтов, а просто ссылаются на файлы, находящиеся на сайте-первоисточнике. Вставка ссылки на файл, находящийся на другом сайте называется хотлинком (hotlink). Помимо ссылок на изображения этого могут быть так же ссылки и на другие файлы, например, доступные для скачивания. Такие хотлинки не только крайне неприятны для автора контента. Они так же перегружает сервер первоисточника.

Защитить файлы от хотлинка при помощи файла.htaccess можно добавив в него две строчки:



ваш_сайт.ru .*$


В скобочках через символ "|" указаны расширения файлов, доступ к которым будет запрещен всем, за исключением сервера и пользователей сайта ваш_сайт.ru

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


RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

Защита паролем

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


AuthName "What do you want? "
AuthType Basic
AuthUserFile
require valid-user


Файл.htaccess, содержащий эти строки необходимо поместить в директорию, доступ к которой мы хотим закрыть. При попытке пользователя зайти на соответствующий раздел сайта сервер отдаст код статуса 401 (требуется авторизация) и выведет окно с полями для ввода имени пользователя и пароля и сообщением "What do you want?", указанным в директиве "AuthName" (допускаются только латинские символы и цифры).

Имена пользователей и пароли хранятся в файле.htpasswd. Путь к этому файлу задается в директиве "AuthUserFile".

Важно: путь к файлу.htpasswd указывается абсолютный, от корневого каталога сервера.

Чтобы узнать путь к.htpasswd, который необходимо указать в.htaccess, можно создать файл php, содержащий:


< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >


Закачать этот файл на сервер туда же, где находится.htpasswd, и открыть его в браузере. В сгенерированной странице Вы увидите абсолютный путь к директории, указанный от корневого каталога сервера.

Установить пароль на конкретный файл можно следующим образом:


< Files file.txt >
AuthName "It"s not for all"
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd


Пароль на группу файлов:


< Files "\.(sql)$" >
AuthName " It"s not for all "
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd


В данном случае все файлы, имеющие расширение.sql будут доступны только по паролю.



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

1. Управление доступом к файлам и каталогам

Защита паролем - это один аспект вопроса, но иногда нужно полностью блокировать пользователю возможность доступа к определённым файлам или каталогам. Такие задачи обычно возникают для системных папок, например, includes . Приложение должно иметь доступ к ним, а пользователь лишается всех привилегий.

Для решения задачи добавьте следующий код в файл.htaccess и сохраните его в нужном каталоге:

Но такой ход блокирует доступ для всех, включая вас. Чтобы обеспечить себе доступ нужно указать IP свой адрес. Вот код:

Order deny,allow deny from all allow from xxx.xxx.xxx.xxx

xxx.xxx.xxx.xxx - ваш IP адрес. Если заменить последние три цифры на 0/12 , например, то будет указан диапазон IP адресов в одной сети. Но такой подход может привести к проблемам, поэтому лучше указывать список IP адресов раздельно.

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

order allow,deny deny from all

Аналогично, если вам требуется открыть доступ с определенных IP адресов, перечислите их с помощью allow from .

Если нужно блокировать доступ к определённым типам файлов, используйте следующий код:

Order Allow,Deny Deny from all

2. Запрещаем просмотр директории

Для запрещения просмотра содержимого директории используйте следующий код:

Options All -Indexes

Но если вам нужно по каким-то причинам разрешить просмотр директории, используйте следующий код:

Options All +Indexes

3. Ускоряем загрузку с помощью сжатия файлов

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

AddOutputFilterByType DEFLATE text/html

А для сжатия текстовых:

AddOutputFilterByType DEFLATE text/plain

Можно также сжимать JavaScript файлы или определять несколько типов файлов для архивации:

AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml

В качестве альтернативы можно сжимать все HTML, JavaScript, CSS и прочие файлы с помощью GZIP:

mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

4. Защищаем сайт от хотлинкинга

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

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?вашдомен.ru RewriteRule \.(jpg|jpeg|png|gif)$ -

Просто замените вашдомен.ru на название своего домена.

5. Блокирование пользователей перенаправленных с определенного домена

Если вы не приветствуете пользователей определенного домена, то можно забанить на своем сайте. Например, если ваш сайт попал в список там, откуда не желателен трафик (например, порнографические сайты, неонацисткие ресурсы и прочее), то вы можете перекрыть его с помощью страницы 403 (запрет доступа). Нужно, чтобы был включен mod_rewrite (обычно он включен). Добавляем код:

RewriteEngine on RewriteCond %{HTTP_REFERER} bannedurl1.com RewriteCond %{HTTP_REFERER} bannedurl2.com RewriteRule .* - [F]

Нужно заменить bannedurl1.com и bannedurl2.com на имена доменов из вашего черного списка. Флаг указывает на отсутствие чувствительности к регистру в имени домена, а флаг [F] определяет действие - в нашем примере вывод страницы 403. Если нужно забанить несколько сайтов, используйте флаг для каждого домена, включая последний. Для запрета только одного домена можно использовать только флаг .

6. Блокирование запросов от определенных агентов

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

RewriteEngine On RewriteBase / SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Deny from env=bad_user

7. Кеширование файлов

Другой метод ускорения загрузки вашего сайта - кеширование файлов. вот что нужно добавить в файл.htaccess для включения кеширования:

Header set Cache-Control "max-age=2592000"

Вы можете добавить типы файлов (или удалить некоторые из них) к списку в примере. Также можно использовать max-age для указания времени в секундах, для хранения ваших файлов в кеше.

8. Отключение кеширования для определенных типов файлов

Если вам не нужно кешировать определенные типы файлов, то можно просто не включать их в список. Однако, иногда файлы могут кешироваться даже если вы не объявили их в списке. В таких случаях можно отключить кеширование только для таких типов файлов. В большинстве случаев требуется отключать кеширование для динамических файлов, таких как скрипты. Вот код:

Header unset Cache-Control

Просто добавьте типы фалов, которые не нужно кешировать в список.

9. Пропускаем диалог загрузки

По умолчанию, когда вы загружаете файл с веб сервера, то появляется диалог, в котором запрашивается действие с файлом (сохранить или открыть). Данный диалог очень раздражает при загрузке больших медиа файлов или документов PDF. Если файлы загружены на ваш сервер для того, чтобы пользователь их скачал, то можно сразу начать процесс. Нужно поместить в файл.htaccess следующие строки:

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3

10. Переименование файла.htaccess

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

AccessFileName htac.cess

Также нужно обновить всех вхождения в самом файле и там, где упоминается.htaccess , иначе возникнет масса ошибок.

11. Изменение индексной страницы по умолчанию

Если вам требуется, чтобы индексная страница отличалась от значения по умолчанию, index.html , index.php , index.htm и так далее, то данная задача решается легко. Вот что нужно добавить в файл.htaccess:

DirectoryIndex mypage.html

Замените mypage.html на адрес URL нужной страницы.

12. Перенаправление на безопасное соединение https

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

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

13. Ограничение размера файла загрузки в PHP, максимального размера запроса и максимального времени выполнения скрипта

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

Php_value upload_max_filesize 15M

Конечно, вы можете установить значение, которое требуется, в нашем примере 15M (MB) не является фиксированным. Также можно ограничить максимальны размер запроса для загрузки в PHP:

Php_value post_max_size 10M

Измените 10M на то значение, которое вам требуется.

Если вы не хотите, чтобы скрипт выполнялся вечно, то можно ограничить время его работы:

Php_value max_execution_time 240

240 - количество секунд до прерывания работы скрипта.

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

Php_value max_input_time 180

14. Маскировка типов файлов

Иногда нужно скрыть от пользователя типы файлов на сервере. Один из способов решить задачу - замаскировать их. Например, вы можете сделать так. что все файлы будут выглядеть как HTML или PHP:

ForceType application/x-httpd-php ForceType application/x-httpd-php

Заключение

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

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

Что же такое файл.htaccess?

Htaccess предназначен не только для WordPress, но для любого вебсайта, расположенного на веб-сервере Apache. При установке WordPress, этот файл в большинстве случаев создается по умолчанию, но остается в скрытом режиме в корневом каталоге вашего сайта. Временами этот файл вообще отсутствует, и тогда вам необходимо вручную создать файл.htaccess. Мы можем использовать обычный текстовый редактор, чтобы обновлять или удалять содержимое этого файла. В WordPress стандартное наполнение данного файла выглядит следующим образом:

# BEGIN WordPress RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Если у вас возникает вопрос о том, как отредактировать прямые ссылки в WordPress и придать им формат /%postname?, и вы даже нашли какой-то код, который нужно вставить в файл.htaccess (но не можете найти файл в консоли вашей системы или корневом каталоге) то сегодня я покажу вам, как решить эту проблему.

Как создать файл.htaccess для WordPress?

В большинстве версий установки WordPress, файл.htaccess присутствует по умолчанию в корневом каталоге. Если вы используете FTP-клиент Filezilla, то можете обратиться за помощью к уже существующему руководству о том, как отредактировать файл.htaccess. Все, что вам нужно сделать, это кликнуть по пункту отображения скрытых файлов. Если же необходимый нам файл вообще отсутствует, то вы можете просто создать его с помощью блокнота (htaccess.txt), а затем переименовать его в.htaccess. Убедитесь, что название файла именно такое, а не.htaccess.txt. Если вы используете Windows, то можете отключить опцию скрывания расширения файлов. Как только переименуете файл, загрузите его в корневой каталог WordPress, и отредактируйте в соответствии с вашими требованиями. Если у вас возникли проблемы с изменением имени файла, просто загрузите файл htaccess.txt на сервер, и измените имя уже на сервере.

Стандартные для безопасности права доступа к файлу.htaccess – 644, но в случае изменения прямых ссылок посредством консоли WP, системе будет закрыт доступ к этому файлу. Вы можете изменить их на 777. Но не забудьте затем вернуть значение 644, иначе это может вызвать серьезные пробелы в безопасности сайта.

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

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

Итак, полезные примеры использования. htaccess:

1. Управление доступом к файлам и каталогам
Защита паролем - это одно, но иногда может понадобиться полностью блокировать доступ пользователей к определенному файлу или папке. Обычно это относится к системным папкам, таким, например, как includes, доступ к которым должны иметь приложения, но не пользователи.

Чтобы сделать это, поместите данный код в файл. htaccess и сохраните его в каталоге к которому закрываете доступ:

Deny from all
Однако учитывайте, что доступ будет блокирован для всех пользователей, включая и вас. Открыть доступ для конкретного пользователя можно прописав его IP-адрес. Вот код, который для этого потребуется:

Order deny,allow deny from all allow from xxx.xxx.xxx.xxx
где xxx. xxx. xxx. xxx - это ваш IP. Для задания разрешенных диапазонов IP-адресов вы можете заменить три последние цифры. Например, написав вместо них «0/12», вы зададите диапазон IP-адресов одной сети, что избавит вас от необходимости вводить в список все разрешенные IP-адреса отдельно.

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

order allow,deny deny from all
Если вы хотите указать определенные IP-адреса которым надо запретить доступ, перечислите их при помощи allow from.

Если же вы хотите заблокировать доступ к файлам определенного типа, используйте этот код:

Order Allow,Deny Deny from all

2. Запрет на просмотр директорий
Для предотвращения просмотра директорий сайта добавьте в.htaccess следующий код:

Options All -Indexes
Если же по какой-то причине вы хотите разрешить просмотр всех директорий, используйте код:

Options All +Indexes

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

AddOutputFilterByType DEFLATE text/html
Для сжатия текстовых файлов используйте:

AddOutputFilterByType DEFLATE text/plain
Вы также можете сжать JavaScript или включить сжатие для других различных типов файлов командами:

AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml
Кроме того, вы можете сжать все ваши JavaScript, HTML и CSS файлы при помощи GZIP. Для этого используйте следующий код:

mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

4. Защита сайта от вставки изображений с других ресурсов
Если вы хотите запретить добавление ссылок на изображения со сторонних ресурсов, добавьте в файл.htaccess код:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ -
Не забудьте заменить yourdomain.com на имя вашего домена.

5. Блокировка посетителей, перешедших с определенного домена
Если вы не хотите видеть на своем сайте пользователей с конкретного домена, то вы можете запретить им доступ. Например, пользователей с нежелательных ресурсов (сайты для взрослых, хакерские сайты и т. д.) вы можете перенаправлять на страницу 403 Forbidden. Для этого необходимо включить mod_rewrite, хотя, как правило, он включен по умолчанию. Добавьте в.htaccess код:

RewriteEngine on RewriteCond %{HTTP_REFERER} bannedurl1.com RewriteCond %{HTTP_REFERER} bannedurl2.com RewriteRule .* - [F]
Вам необходимо заменить bannedurl1.com и bannedurl2.com доменами, которые вы хотите внести в черный список. Вы можете использовать флаг , указывающий, что введенное доменное имя нечувствительно к регистру. Флаг [F] указывает на тип действия, в данном случае - отображение ошибки 403 Forbidden. Если вы хотите запретить несколько сайтов, используйте флаги для каждого домена, если же вы хотите запретить использование одного домена - используйте только флаг .

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

RewriteEngine On RewriteBase / SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Deny from env=bad_user
Замените badbot1, badbot1 и т. д. именами ботов из вашего журнала. Это закроет посторонним программам доступ к вашему сайту.

7. Кэширование файлов
Кэширование файлов - еще один способ ускорить загрузку вашего сайта. Вот то, что вам нужно прописать в.htaccess:

Header set Cache-Control "max-age=2592000"
Вы можете добавить больше типов файлов (или удалить некоторые из них) в перечисленныq в данном примере список файлов. Вы также можете указать время сохранения файлов в кэше (в секундах) при помощи переменной max-age.

8. Отключение кэширования для разных типов файлов
Если вы не хотите кэшировать определенные типы файлов, можно не включать их в список. Однако иногда файлы могут сохраняться в кэше даже не будучи явно перечисленными в списке, в этом случае вы можете отключить кэширование для них индивидуально. Чаще всего отключать кэширование требуется для динамических файлов, таких как сценарии. Пример требуемого для этого кода:
Header unset Cache-Control
Просто укажите типы файлов, для которых нужно отключить кэширование.
9. Обход диалога загрузки
По умолчанию при попытке загрузить файл с веб-сервера отображается диалог, который спрашивает вас, хотите ли вы сохранить файл или открыть его. Этот диалог особенно раздражает при скачивании больших медиа- или PDF-файлов. Если файлы, которые вы загрузили на сервер, предназначены исключительно для скачивания, вы можете облегчить жизнь пользователей, установив загрузку действием по умолчанию. Добавьте в. htaccess следующее:

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3

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

AccessFileName htac.cess
Кроме того, необходимо обновить все записи, в которых упоминается файл.htaccess, иначе возникнет множество ошибок.

11. Замена стартовой страницы сайта
Если вы хотите установить главную страницу, отличную от стандартной (index.html, index.php, index.htm и т. д.), добавьте следующий код в файл.htaccess:

DirectoryIndex mypage.html
Замените mypage.html на URL страницы, которую вы хотите использовать в качестве главной.

12. Перенаправление на защищенное соединение HTTPS
Если вы используете HTTPS и хотите перенаправить пользователей на защищенные страницы вашего сайта, добавьте в файл.htaccess следующие строки:

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

13. Ограничение максимального размера загружаемых файлов в PHP, максимального размера передаваемых данных, максимального времени выполнения скриптов и т.п.
.htaccess позволяет устанавливать некоторые значения, непосредственно влияющие на работу PHP приложений. Например, если вы хотите установить в PHP ограничение на размер загружаемых файлов, чтобы не забивать хостинг большими файлами:

Php_value upload_max_filesize 15M
Вы можете установить любое значение, в примере размер файла ограничен 15M (MБ). Помимо этого вы можете ограничить максимальный размер передаваемых при загрузке в PHP данных:

Php_value post_max_size 10M
Вы можете заменить 10М на любое требуемое вам значение. Если вам не требуется постоянное выполнение скриптов, вы можете ограничить время их выполнения с помощью строки:

Php_value max_execution_time 240
240 - время выполнения (в секундах), после которого скрипт будет остановлен, вы можете изменить это значение на любое другое. Наконец, если вы хотите ограничить время анализа скриптом исходных данных, используйте следующий код:

Php_value max_input_time 180
Установите вместо 180 любое требуемое вам время (в секундах).

14. Скрытие типов файлов
Иногда нужно, чтобы пользователи не знали, какие типы файлов находятся на вашем сайте. Один из способов скрыть эту информацию - сделать так, чтобы все ваши файлы отображались как HTML или PHP файлы:

ForceType application/x-httpd-php ForceType application/x-httpd-php
И это лишь часть того, что может.htaccess, а вообще он позволяет сделать гораздо больше. Например, вы можете установить автоматический перевод страниц вашего сайта, установить часовой пояс сервера, удалить WWW из URL-адресов или использовать причудливые представления каталогов и т.д. Но в любом случае, прежде чем начинать эксперименты с файлом.htaccess, всегда сохраняйте резервную копию оригинального.htaccess, чтобы при возникновении проблем можно было быстро восстановить работу сайта.

Htaccess (с точкой в начале имени) – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.

Как известно, конфигурационные директивы сервера Apache находятся в файлe httpd.conf. Но далеко не всегда у Вас будут права доступа к этому файлу. Например, если Вы используете для хостинга виртуальный сервер, когда один сервер Apache обслуживает множество сайтов, то, естественно, Вам никто не позволит менять его конфигурацию. Но, тем не менее, вы можете конфигурировать работу сервера в своих директориях. И делать вы это можете с помощью файлов.htaccess.

Файл.htaccess может быть размещен в любом каталоге. Директивы этого файла действует на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов.htaccess).

Изменения, вносимые в файлы.htaccess, вступают в силу немедленно и не требуют перезагрузки сервера, в отличие от изменений, вносимых в главный конфигурационный файл httpd.conf.

Настройки httpd.conf, разрешающие применение файлов.htaccess

Для того, что бы эти файлы.htaccess можно было использовать - необходимы соответствующие настройки главного конфигурационного файла. В файле httpd.conf должны быть прописаны директивы, которые разрешат файлу.htaccess переопределять конфигурацию web-сервера в каталоге. Эта директива называется AllowOverride. Она может быть установлена как для всего сервера (глобально), так и для отдельного каталога.

Директива AllowOverride может включать в себя одну из следующих директив или их комбинацию: All, None, AuthConfig, FileInfo, Indexes, Limit, Options .

Для того чтобы дать директивам файлов.htaccess максимальные права следует прописать в httpd.conf:

AllowOverride All

Примечание

При желании название конфигурационного файла можно изменить, и например, назвать его не.htaccess, a access.conf. За название этого файла отвечает директива AccessFileName в файле httpd.conf. Но все же рекомендуется этого не делать.

Синтаксис.htaccess

Перед тем, как будут рассмотрены примеры, остановимся на синтаксисе директив в файлах.htaccess.

  • Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server1/html/

Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP - phpinfo(). Она выведет на экран конфигурацию PHP в виде фиолетовых таблиц. В них Вам необходимо найти переменную doc_root и посмотреть ее значение - это будет путь от корня сервера до Вашей основной директории.

  • В именах доменов обязательно должны быть указаны протоколы, например:

Примеры использования.htaccess

Глобальное перенаправление (редирект) на другой адрес:

Redirect / http://www.newsite.ru

Перенаправление (редирект) только при запросе определенных страниц:

Redirect /company http://www.newsite.com/newcompany
redirect /forum http://www.newsite.com/newforum

При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.

Перенаправление (редирект) только посетителей с определенным IP-адресом:

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

Если посетитель имеет IP-адрес 192.145.121.1, то ему будет открыта страница only_for_you.html.

Изменение названия индексной страницы:

DirectoryIndex index.html index.php index.shtml

Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д.

Выполнять код PHP в файлах HTML

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

Добавив эти строки в.htaccess вы дадите директиву серверу выполнять инструкции PHP не только в файлах с расширением *.php и *.phtml, но и в файлах с расширением *.htm и *.html.

Обработка ошибок Apache

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

При возникновении этих ошибок посетитель будет перенаправлен на специально созданные страницы.

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

Запрет на отображение содержимого каталога при отсутствии индексного файла

Options –Indexes

Определение кодировки, в которой сервер "отдает" файлы

AddDefaultCharset windows-1251

Определение кодировки на загружаемые файлы

CharsetSourceEnc windows-1251

Запрет доступа ко всем файлам

Deny from all

Запрещен доступ ко всем файлам и каталогам в текущей директории.

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

Order deny,allow
deny from all
allow from 195.135.232.70

Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 195.135.232.70. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыть, так как директива deny, выполняемая последней перекроет действия директивы allow.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: