• Авторизация


Самоучитель по файлу .htaccess 23-01-2009 22:47 к комментариям - к полной версии - понравилось!


Всвязи с подарком от doctorhost на Крещение, один из моих сайтов, после перехода на новый хостинг перестал работать. После общения со службой поддержки хостинга, удалось установить проблему – файл .htaccess.

 

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

 

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

 

Файл .htaccess - общая информация

 

Источник: http://htaccess.net.ru/doc/htaccess/index.php

Авторы ВЕБ-сервера Apache реализовали возможность децентрализованного управления конфигурацией с помощью использования специальных файлов имеющих именуемых по умолчанию - .htaccess, которые помещаются на диске прямо в веб-пространстве виртуального сервера. Эти файлы обычно называются .htaccess (обратите внимание на первый символ в названии файла - точку).

Действие команд из файла .htaccess распространяется и на подкаталоги того каталога, в котором этот файл размещен. Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех директорий, где находится другой файл . htaccess (и кроме всех папок "ниже" этой папки со вторым . htaccess). Лишь модуль mod rewrite имеет свою специфику наследования.

Поскольку файлы . htaccess являются служебными, то они не доступны веб-пользователю из браузера. Хотя, конечно же, абсолютно всё, в том числе и это ограничение, можно переназначить в httpd.conf - главном конфигурационном файле сервера доступному только администратору хостингу.

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

Так же администратор Apache может ограничивать для пользователей доступ к тем или иным директивам. То есть, несмотря на то, что команда, в принципе, может исполняться из .htaccess, администратор может запретить доступ к конкретной директиве. Учитывайте это при работе. Обычно это выражается в том, что вместо нужного результата (при перепроверенном - 100% правильном синтаксисе директив), сервер продолжает выдавать - 500-ошибку - код статус сервера.

В файле настройки Apache за .htaccess , отвечают следующие директивы - AccessFileName и AllowOverride. Первая задает имя файла настройки (по умолчанию . htaccess ), вторая разрешает/запрещает его использование в папке. Чтобы работали настройки . htaccess , обе директивы должны быть настроены соответствующим образом.

Кстати, большинство бесплатных хостингов, хотя и держат у себя Apache , использование .htaccess не разрешают, или разрешают лишь некоторые из них.

 

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

 

Источник: http://www.php-web.info/articles/recepies/htaccess-templates.html

1. Доступ к сайту

Даем доступ ко всему сайту (24.205.23.222) роботу Google без пароля, а всем пользователям с браузерами только по паролю. Также доступна будет валидация XHTML и CSS.

# ELITE HTACCESS FOR WEBDEVELOPERS
##############################################
AuthName "SiteName Administration"
AuthUserFile /home/sitename.com/.htpasswd
AuthType basic
Require valid-user
Order deny,allow
Deny from all
Allow from 24\.205\.23\.222
Allow from w3.org htmlhelp.com
Allow from googlebot.com
Satisfy Any

ПРИМ: Любое правило . htaccess rewrite должно начинаться со следующих строк:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

2. Присвоить определенный тип файла (независимо от названия или расширения)

#Makes image.gif, blah.html, index.cgi all act as php
ForceType application/x-httpd-php

3. Дружественные SEO перенаправления для удаленных/перемещенных ссылок и страниц

Для единичного файла

Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html

Для нескольких файлов например: blog/this.php?gh

RedirectMatch 301 /blog(.*) http://www.askapache.com/$1

4. Переадресация на другой домен

Redirect 301 / http://www.newdomain.com

5. Обязательное использование префикса: www

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^/robots\.txt$
RewriteCond % !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

6. Обязательное использование префикса: www (без обработки скриптами)

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^/robots\.txt$ [NC]
RewriteCond % !^www\.[a-z-]+\.[a-z] [NC]
RewriteCond % ([a-z-]+\.[a-z] )$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

7. Требовать не субдомен

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^/robots\.txt$
RewriteCond % \.([a-z-]+\.[a-z] )$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

8. Перенаправление запросов с любых IP за исключением одного (полезно для веб-разработки)

ErrorDocument 403 http://www.someothersite.com
Order deny,allow
Deny from all
Allow from 24.33.65.6

9. Установка временной зоны сервера:

SetEnv TZ America/Indianapolis

10. Установка е-mail администратора:

SetEnv SERVER_ADMIN webmaste@htaccesselite.com

11. Добавление языкового тега "en-US" (или "ru-RU") и заголовка"text/html; UTF-8" без использования метатегов

AddDefaultCharset UTF-8
# Or AddType 'text/html; charset=UTF-8' html
DefaultLanguage en-US

Используя "Files Directive"


AddDefaultCharset UTF-8
DefaultLanguage en-US


Используя "FilesMatch Directive" (предпочтительнее)


AddDefaultCharset UTF-8
DefaultLanguage en-US


12. Использование собственного php.ini с mod_php или php как cgi

Типичный пример

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

Все перечисленные файлы (расширения) попадают на обработчик -ExecCGI, и автоматически выключают -FollowSymLinks (и как обратный пример, +ExecCGI также включает +FollowSymLinks)

13. Разрешить только GET и PUT методы запросов на сервере.

Options -ExecCGI -Indexes -All +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^(GET|PUT)
RewriteRule .* - [F]

14. Пропустить все файлы gif через cgi скрипт (обработать)

Action image/gif /cgi-bin/filter.cgi

15. Обработать запрос в зависимости от метода запроса

Script PUT /cgi-bin/upload.cgi

16. Добавить типы файлов не отображающихся в браузере

AddType application/octet-stream .avi
AddType application/octet-stream .mpg

И тогда Ваша HTML ссылка будет выглядить так:

Download[/url] Movie1

Клиент получит всплывающее окно с запросом Открыть или Сохранить файл.

17. Разрешить показывать код в браузере

Например Вы хотите чтобы сервер не обрабатывал файлы типа .pl, .py, или .cgi, а отображал их в браузере как текстовый файл.

RemoveHandler cgi-script .pl .py .cgi

18. Ускорение работы сайта при помощи кэширования

# MONTH

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

# WEEK

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

# DAY

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


19. Защитить контент (картинки, файлы и т.п.) от кражи

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^$
RewriteCond % !^http://(www\.)?askapache.com/.*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ http://www.askapache.com/feed.gif [R=302,L]

20. Обработка ошибок HTTP

ErrorDocument 404 /favicon.ico
ErrorDocument 403 https://secure.htaccesselite.com
ErrorDocument 404 /cgi-bin/error.php
ErrorDocument 400 /cgi-bin/error.php
ErrorDocument 401 /cgi-bin/error.php
ErrorDocument 403 /cgi-bin/error.php
ErrorDocument 405 /cgi-bin/error.php
ErrorDocument 406 /cgi-bin/error.php
ErrorDocument 409 /cgi-bin/error.php
ErrorDocument 413 /cgi-bin/error.php
ErrorDocument 414 /cgi-bin/error.php
ErrorDocument 500 /cgi-bin/error.php
ErrorDocument 501 /cgi-bin/error.php

21. Идентификация пользователей

Защита паролем 1-го файла:


AuthName "Prompt"
AuthType Basic
AuthUserFile /home/askapache.com/.htpasswd
Require valid-user


Защита нескольких файлов:


AuthName "Development"
AuthUserFile /.htpasswd
AuthType basic
Require valid-user


Пример использования разрешающей директивы - Allow Directive:

# A (partial) domain-name
Allow from 10.1.0.0/255.255.0.0
# Full IP address
Allow from 10.1.2.3
# More than 1 full IP address
Allow from 192.168.1.104 192.168.1.205
# Partial IP addresses
# first 1 to 3 bytes of IP, for subnet restriction.
Allow from 10.1
Allow from 10 172.20 192.168.2
# network/netmask pair
Allow from 10.1.0.0/255.255.0.0
# network/nnn CIDR specification
Allow from 10.1.0.0/16
# IPv6 addresses and subnets
Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

22. Использование посетителем зависимых переменных окружения:

SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
Order Deny,Allow
Deny from all
Allow from env=let_me_in

23. Разрешить вход на apache.org и запретить на foo.apache.org

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

24. Разрешить с определенного IP вход без запроса пароля, а с других IP требовать пароль:

AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Allow from 172.17.10
Satisfy Any

25. Блокировать доступ к файлам в определенное время суток

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# If the hour is 16 (4 PM) Then deny all access
RewriteCond % ^16$
RewriteRule ^.*$ - [F,L]

Базовый шаблон .htaccess Включает все директивы с комментариями, ненужное можно закомментировать символом #.

# DEFAULT SETTINGS
##############################################
Options +ExecCGI -Indexes
DirectoryIndex index.php index.html index.htm
### DEFAULTS ###
ServerSignature Off
AddType video/x-flv .flv
AddType application/x-shockwave-flash .swf
AddType image/x-icon .ico
AddDefaultCharset UTF-8
DefaultLanguage en-US
SetEnv TZ America/Indianapolis
SetEnv SERVER_ADMIN webmaster@askapache.com
### FAST-CGI ###
AddHandler fastcgi-script fcgi
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php5-wrapper.fcgi
# HEADERS and CACHING
##############################################
#### CACHING ####
# YEAR

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

# WEEK

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

# 10 minutes

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

# DONT CACHE

Header unset Cache-Control

# REWRITES AND REDIRECTS
##############################################
### SEO REDIRECTS ###
Redirect 301 /2006/uncategorized/htaccesselitecom-aboutus.html http://www.^^SITE^^.^^TLD^^
### REWRITES ###
RewriteEngine On
RewriteBase /
 
### WORDPRESS ###
# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]

# END WordPress
# AUTHENTICATION
##############################################
AuthName "askapache.com"
Require valid-user
AuthUserFile /askapache/.htpasswd
AuthType basic

 

От сети не жди чудес - RSS - Делитант: про деньги, сайты, SEO и Google. Подпишись на RSS!

Я в Twitter: http://twitter.com/Delitant

 

Статьи по теме:

  1. Twitter как источник новостей и контента
  2. Зарабатываем в День Святого Валентина
  3. Татьянин День: Подарки, Цветы, Поздравления и Заработок
  4. Биржа ссылок: Как сделать правильный выбор?

 

[468x60]



срочные сантехнические работы

срочные сантехнические работы

срочные сантехнические работы

срочные сантехнические работы

срочные сантехнические работы

срочные сантехнические работы
вверх^ к полной версии понравилось! в evernote
Комментарии (4):
Columbo 24-01-2009-10:50 удалить
Я тоже не разбираюсь. Яснее не стало ни на грамм. Ты имеешь доступ к правке своего .htaccess? Что у тебя была за проблема? Что ты сделал?
Делитант 24-01-2009-14:49 удалить
Доступ к .htaccess есть на одном из сайтов. После аварии, как я понял файлы перенесли на другой хостинг, и сайт перестал работать (потери примерно 8-10$ в сутки). Главное все файлы на месте, а сайт не работает. Стучался в службу поддержки, там сказали копай в .htaccess Проблема была в прописаных .htaccess редиректах. Там типа все страницы *.html воспринимаются как index.php?id=* Долго разбирался, попутно нашел еще много возможностей .htaccess, решил их записать. Получился такой пост. Я и сам не доконца разобрался :)
Columbo 24-01-2009-22:25 удалить
Ага, немножко яснее стало. Кстати, попутный вопрос. При переносе с одного хостинга на другой сайт не потерял PR и тИЦ? По идее, не должен был (имя-то осталось,какая разница, где он лежит?)
Делитант 25-01-2009-11:09 удалить
Columbo, мне попадалась информация что поисковые системы при учитывают хостинг. Каким образом это происходит, и происходит ли вообще, сказать не могу. Теоритически, процесс смены хостинга, не должен влиять на показатели сайта, но в сложившейся ситуации (сайт 5 дней не был доступен) он вполне может выпасть из индекса. Особенно Яндекса.


Комментарии (4): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Самоучитель по файлу .htaccess | Делитант - Делитант: про деньги, сайты, SEO и Google. | Лента друзей Делитант / Полная версия Добавить в друзья Страницы: раньше»