Работа с файлом htaccess

Работа с файлом htaccess

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


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

deny from all

Данный код полностью заблокирует доступ в этот каталог для любого пользователя, включая и вас:)

Чтобы запретить доступ всем пользователям в каталог за исключением пользователя с определённым IP, вставьте этот код:

order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx

Где xxx.xxx.xxx.xxx ваш IP адрес. Естественно, что данный вариант вам подходит, если у вас статический IP:)

Заблокировать доступ к любому файлу в каталоге, в том числе к .htaccess:

<Files .htaccess>
deny from all
</Files>

Закрыть доступ к определённому типу файлов ( в данном случае к файлам с расширением .pdf):

<Files "*.pdf">
deny from all
</Files>

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

<FilesMatch ".(htaccess|htpasswd|ini|php|pdf|psd|log|sh)$">
deny from all
</FilesMatch>

Код для предотвращения просмотра каталога и субкаталогов в браузере:

Options All -Indexes

Однако, если по какой-то причине Вы хотите разрешить просмотр, измените его на следующее:

Options All +Indexes

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

AddOutputFilterByType DEFLATE text/html

Пример для сжатия текстовых файлов:

AddOutputFilterByType DEFLATE text/plain

Вы также можете сжать JavaScript, или добавить сжатие для различных типов файлов с помощью этой команды:

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

Сжатие всех файлов сайта с компрессией GZIP:

<IfModule mod_gzip.c>
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.*
</IfModule>

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?mysite.ru [NC]
RewriteRule \\.(jpg|jpeg|png|gif)$ - [NC,F,L]

Замените mysite.ru на свой домен.
Но учтите если вы запретили использовать картинки с вашего сайта другим сайтам, то это повлияет и на нахождение их в ПС, по этому лучше использовать другой код:

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?mysite.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?images.google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?images.google.ru [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?images.yandex.ru [NC]
RewriteCond %{REQUEST_URI} !^/картинка-заглушка.jpg [NC]
RewriteRule .(gif|jpg|jpeg|png|swf)$ http:// mysite.ru/картинка-заглушка.jpg [R,NC]

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

Чтобы запретить вход на сайт посетителям с определенного домена, дабы понизить нагрузку, закрыть доступ нежелательным посетителям, вы можете отдавать им страницу Forbidden 403.

Для работы кода должен быть включен модуль mod_rewrite:

RewriteEngine on
RewriteCond %{HTTP_REFERER} badsite\\.com [NC]
RewriteRule .* - [F]

Увеличиваем нежелательные источники:

RewriteEngine on
RewriteCond %{HTTP_REFERER} badsite\\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badsite2\\.com
RewriteRule .* - [F]

Блокировка переходов на сайт с определённого IP адреса:

<Limit GET POST>
order allow,deny
deny from XXX.XXX.XXX.XXX
allow from all
</Limit>

Блокировка определенных ботов и пауков (требуется mod_rewrite):

SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher) HTTP_SAFE_BADBOT

Увеличиваем скорость загрузки сайта путём кэширования:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
ExpiresByType text/html "access plus 0 seconds"

ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/rss+xml "access plus 1 hour"

ExpiresByType image/x-icon "access plus 1 week"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"

ExpiresByType image/jpg "access plus 1 month"
ExpiresByType text/css "access plus 1 year"

ExpiresByType application/javascript "access plus 1 year"

</IfModule>
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>

</ifModule>
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

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

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

В даннном примере все странички ошибок находятся в каталоге error.


sbird    В копилку    496

Комментарии отсутствуют

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