71.7892 ·  83.0816

 

.HTACCESS

.htaccess (с точкой в начале имени) - это файл конфигурации сервера Apache, который позволяет настроить сервер в отдельном каталоге (папке), не предоставляют доступ к основному файлу конфигурации.

Например, для установки прав доступа к файлам в директории, изменить имена индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправление посетителей на специальную страницу ошибки. .htaccess файл - это текстовый документ, расширение который имеет htaccess.

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

Mod_rewrite - модуль используется web-серверами для преобразования URL.

Директивы модуля Mod_rewrite

RewriteBase RewriteCond RewriteEngine RewriteLock
RewriteLog RewriteLogLevel RewriteMap RewriteOptions
RewriteRule

Варианты реализации Редиректа с помощью файла .htaccess

Простой редирект:

Redirect 301 / http://www.www3.ru/

Если у пользователя ip-адрес 89.222.130.30, он будет перенаправлен на страницу redirect.php:

SetEnvIf REMOTE_ADDR 89.222.130.30 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /redirect.php


Перенаправить при запросе отдельных файлов. Если запрошенные файлы, расширение которых не указан в файле .htaccess файлы (gif и png), то следует перенаправление пользователя:

RewriteEngine On
RewriteRule !.(gif|png)$ index.php


Использование mod_rewrite:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www3\.ru
RewriteRule ^(.*)$ http://www.www3.ru/$1 [R=permanent,L]


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

RedirectMatch Permanent ^/html/resources.html$ http://www.www3.ru/resources.php
RedirectMatch Permanent ^/html/other_page.html$ http://www.www3.ru/other_page.php
RedirectMatch Permanent ^/(.*)$ http://www.www3.ru/

"RedirectMatch Permanent" - это эквивалент "RedirectMatch 301", в соответствии с "*(Wildcard)" должен быть последним в этом списке.


Создание удобо читаемых URL:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

В следующем примере преобразуем www.www3.ru/script.php?product=123 в www.www3.ru/cat/product/123/:

RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2

Запрещение доступа в конкретную директорию



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

deny from all

к конкретному файлу:


deny from all


по ip пользователя:

order deny,allow
deny from all
allow from 89.222.130.30

Определение кодировки

AddDefaultCharset windows-1251

варианты: KOI8-R, UTF-8, Windows-1251

Установка пароля на директорию с помощью .htaccess

AuthType Basic
AuthName "Some Name"
AuthUserFile /www/some_login/www/htdocs/some_dir/.htpasswd
require valid-user

Задаем собственные страницы ошибок



Задать собственную страницу ошибок можно следующим образом:

ErrorDocument 404 http://www.www3.ru/404.php

Индексация директорий и поддиректорий



Задать собственную страницу ошибок можно следующим образом:

DirectoryIndex index.php

Эта директива определяет файл, который будет вызываться при обращении к директории, без указания имени файла.

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

Если файл не найден index.html, она будет автоматически искать файл index.php и т.д.

DirectoryIndex index.html index.php index.shtml
 Up!