Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

О файле .htaccess

О файле .htaccess

 

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

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

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

Как .htaccess выглядит?

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

Знание возможностей конфигурации файла .htaccess необходимо для веб-мастеров для, чтобы улучшить поисковую оптимизацию веб-страницы и повысить безопасность своего сайта. При правильном использовании, конфигурационный файл web-сервера Apache — .htaccess представляет собой очень мощное средство в инструментарии разработчика.

Редирект из поддомена в каталог

Задача

Поставлена задача перенаправлять запросы к поддоменам в каталоги на сервере. Например sub1.example.com нужно переделать в example.com/sub1.

Решение

RewriteCond %{HTTP_HOST} !^(www|ftp|mail)\.example\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule (.*) /%1/$1 [L]

Таким образом, любой запрос типа sub1.example.com/foo (кроме www, ftp, mail) будет преобразовываться в example.com/sub1/foo.

Перенаправляем со старого домена на новый

Используя .htaccess, можно настроить перенаправление со старого доменного имени на новое. Например:

RewriteEngine On
RewriteRule ^(.*)$ http://www.domainname-new.com/$1 [R=301,L]

Перенаправление используется в том случае, если существующий сайт переносится на новое доменное имя. В этом случае любой пользователь, который наберет в адресной строке www.domainname-old.com будет перенаправлен на www.domainname-new.com.

Перенаправление на другую страницу

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

Redirect 301 /company/about.html http://domain.com/company/about/index.html

Ограничение доступа

С помощью файла .htaccess можно управлять доступом к ресурсам сервера.

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

Order
Allow
 и 
Deny

Директива Order

Устанавливает порядок работы директив 

Deny
Allow
 и 
Order порядок

Где порядок может принимать значения 

Deny,Allow
 или 
Allow,Deny
По умолчанию:
Order Deny, Allow

Директива Deny

Запрещает доступ определенных клиентов к ресурсам.

Deny from all|host

где 

host
 может принимать значения IP адреса или имени хоста.

Директива Allow

В отличие от 

Deny
 разрешает доступ определенных клиентов к ресурсам.
Allow from all|host
host
 может принимать значения IP адреса или имени хоста.

Примеры использования директив Order, Allow, Deny

Запретить доступ для всех:

  Order deny,allow
  Deny from all

Разрешить доступ для определенных адресов:

  Order deny,allow
  Deny from all
  Allow from 192.168.1.1
  Allow from 172.16.1.1

Запретить доступ с определенных адресов:

  Order allow, deny
  Allow from all
  Deny from 192.168.1.1
  Deny from 172.16.1.1

Защита файлов от скачивания

С помощью .htaccess можно управлять доступом к файлам сервера.

Например, так можно полностью запретить доступ к файлу .htaccess:

# Закрываем доступ к .htaccess
<Files .htaccess>
  Order deny, allow
  Deny from all
</Files>

Также можно разрешать или запрещать доступ к файлам с определенных IP-адресов. Например:

# Открыть доступ для определенного IP
<Files config.inc>
  Order deny, allow
  Deny from all
  Allow from 192.168.1.1
</Files>

# Закрываем доступ с определенного IP
<Files config.inc>
  Order allow, deny
  Allof from all
  Deny from 192.168.1.1
</Files>

Ограничить доступ ко всему сайту

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

<Limit GET POST PUT>
  Order deny,allow
  Deny from all
  Allow from 192.168.1.1
  Allow from 172.16.1.1
</Limit>

 

14 октября 2012, 22:09    Александр Linux 0    246 0

 



Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.