ТП 100ms.ru

Объявление

С 1 марта 2015 года мы переехали на
Единую справочную службу



Темы форума остаются в качестве архива.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ТП 100ms.ru » Вопросы про .htaccess » Файл htaccess ‡полезные директивы


Файл htaccess ‡полезные директивы

Сообщений 1 страница 9 из 9

1

От автора написал(а):

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

Источник: http://webformyself.com/fajl-htaccess-stranicy-oshibok/

2

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

   Другое дело файлы php. Здесь правильно настроенный сервер ни за что не отдаст просто так такой файл. Прежде всего, сервер отдает этот файл интерпретатору PHP, который, в свою очередь, обрабатывает файл, выполняя программный код в файле. Затем интерпретатор возвращает уже обработанный документ серверу, который отдает его уже клиенту.

   Как же нам «заставить» сервер отдавать, к примеру, файлы html интерпретатору для исполнения программного кода? В этом нам как раз и поможет следующая директива:

Код:
# выполнение кода PHP в файлах не .php
AddType application/x-httpd-php .html .htm .txt .css

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

Например, на сайте wwwosg.ru используются файлы с расширением osg: index.osg, script.osg и т.п.

Код:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.

3

Вторая директива очень полезна и помогает отдавать так называемые собственные страницы ошибок.

   Когда сервер в результате запроса клиента генерирует ошибку, то эту ошибку он показывает клиенту на специальной странице. Например, это может быть ошибка 404 (файл не найден), ошибка 403 (доступ запрещен), ошибка 500 (внутренняя ошибка сервера) и много других.

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

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

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

Код:
# страницы ошибок
#ErrorDocument 403 "Access Denied"
ErrorDocument 403 /htaccess/page403.html
ErrorDocument 404 http://localhost/htaccess/page404.html

   Здесь, как Вы могли заметить, мы можем использовать как относительный, так и абсолютный путь. Также, как вариант, можно вместо страницы показать какой-нибудь текст (хотя в этом мало смысла).

4

Как заставить Апач обрабатывать SSI директивы?

   SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
   В блоке, начинающемся с <Directory/> и заканчивающийся </Directory> в строку Options Indexes добавьте Includes.

После, в файле .htaccess пишем:

Код:
AddHandler server-parsed .shtml .shtm .html .htm

5

6

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

   Конечно доступ к каталогам и файлам можно сделать установив  CHMOD, но если нужно запретить доступ к папке файлам всем, но не серверу, то можно положить в .htaccess такой скрипт:

Код:
deny from all

Доступ будет блокирован для всех пользователей, включая и вас.


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

<Files step.php>
order allow,deny
deny from all
</Files>


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

<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>

7

Директивы файла htaccess

Код:
 <!-- HTML --> 
<center><script>
$('#p352').html('<iframe frameBorder="0" src="http://htaccess.ofsoo.ru/" style="width:100%; height:600px; border:none; background: #FFF;" scrolling="yes"></iframe>'); 
</script>
</center>

8

Директивы кеширования
Кэширование для всех типов файлов по времени доступа

Код:
ExpiresActive on
ExpiresDefault "access plus 600 seconds"

Кэширование для всех типов файлов по времени изменения

Код:
ExpiresActive on
ExpiresDefault "modification plus 600 seconds"

Кэширование для определённых типов файлов

Код:
ExpiresByType text/css "modification plus 600 seconds"
ExpiresByType image/jpeg "modification plus 600 seconds"
ExpiresByType image/gif "modification plus 600 seconds"
ExpiresByType image/x-ico "modification plus 600 seconds"
ExpiresByType image/png "modification plus 600 seconds"

Запрет кеширования

Код:
<IfModule mod_headers.c>
Header append Cache-Control "no-store, no-cache, must-revalidate"
</IfModule>

# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "now"
</IfModule>

#Необходимые заголовки будут передаваться автоматически, и специально их писать в PHP уже не нужно - кэш уже выключен!

Кеширование javascript файлов с помощью файла .htaccess

Код:
<FilesMatch .*\.js$>
    ExpiresDefault "access plus 3 days"
</FilesMatch>

Кеширование с помощью файла .htaccess

Код:
<IfModule mod_expires.c>
ExpiresActive on
#ExpiresDefault "access plus 1 hours"
#ExpiresDefault "access plus 10 years"
ExpiresDefault                          "access plus 1 month"
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/json          "access plus 0 seconds"
ExpiresByType application/rss+xml       "access plus 1 month"
ExpiresByType image/x-icon              "access plus 1 week"
ExpiresByType image/gif                 "access plus 1 year"
ExpiresByType image/png                 "access plus 1 year"
ExpiresByType image/jpg                 "access plus 1 year"
ExpiresByType image/jpeg                "access plus 1 year"
ExpiresByType video/ogg                 "access plus 1 year"
ExpiresByType audio/ogg                 "access plus 1 year"
ExpiresByType audio/mp3                 "access plus 1 year"
ExpiresByType video/mp4                 "access plus 1 year"
ExpiresByType video/webm                "access plus 1 year"
ExpiresByType text/x-component          "access plus 1 month"
ExpiresByType font/truetype             "access plus 1 year"
ExpiresByType font/opentype             "access plus 1 year"
ExpiresByType application/x-font-woff   "access plus 1 year"
ExpiresByType image/svg+xml             "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType text/css                  "access plus 2 months"
ExpiresByType application/javascript    "access plus 2 months"
ExpiresByType text/javascript           "access plus 2 months"
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>

9

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

Код:
RewriteCond %{HTTP_USER_AGENT} (Googlebot|Slurp|spider|Twiceler|heritrix|
	Combine|appie|boitho|e-SocietyRobot|Exabot|Nutch|OmniExplorer|
	MJ12bot|ZyBorg/1|Ask\ Jeeves|AskJeeves|ActiveTouristBot|
	JemmaTheTourist| agadine3|BecomeBot|Clustered-Search-Bot|
	MSIECrawler|freefind|galaxy|genieknows|INGRID|grub-client|
	MojeekBot|NaverBot|NetNose-Crawler|OnetSzukaj|PrassoSunner|
	Asterias\ Crawler|T-H-U-N-D-E-R-S-T-O-N-E|GeorgeTheTouristBot|
	VoilaBot|Vagabondo|fantomBro wser|stealthBrowser|cloakBrowser|
	fantomCrew\ Browser|Girafabot|Indy\ Library|Intelliseek|Zealbot|
	Windows\ 95|^Mozilla/4\.05\ \[en\]$|^Mozilla/4\.0$) [NC]
RewriteRule ^(.*)$ - [F]
#
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Opera.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Firefox.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Netscape.* [NC]
RewriteRule ^(.*)$ - [L]
RewriteRule ^(.*)$ - [F]

Вы здесь » ТП 100ms.ru » Вопросы про .htaccess » Файл htaccess ‡полезные директивы


Рейтинг форумов | Создать форум бесплатно