FAQ: .htaccess

Наиболее распространенные вопросы по правилам в .htaccess.

1. Как сделать свою страницу ошибки 404?

Добавьте правило в .htaccess:

ErrorDocument 404 /404.html

где 404.html — это ваша собственная страница с текстом ошибки.

2. Как сделать перенаправление с domen1.com на domen2.com

В корне сайта domen1.com добавьте правило:

Redirect / http://domen2.com

3. Как сменить кодировку всего выводимого сайта?

Для этого добавьте правило (например для cp1251):

AddDefaultCharset cp1251

4. Как сделать, чтобы сайт открывался без указания подкаталога в адресной строке?

Это можно сделать, добавив правило в .htaccess корня сайта:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule !^site(/?|/.+)$ /site%{REQUEST_URI} [L]

где site — это подкаталог. Еще информация по перенаправлению из подкаталога здесь.

5. Как в адресной строке заменить расширение скриптов с *.php на *.html?

Это можно сделать с помощью правила:

RewriteEngine On
RewriteRule (.+) $1.html [L]

6. Как запретить доступ с определенных IP адресов к сайту?

Это можно сделать, добавив в .htaccess корня сайта следующие правила:

Order Allow,Deny 
Allow from All 
Deny from 180.10.10.10

где 180.10.10.10 запрещенный ip. Если нужен запрет с нескольких ip адресов, то такая конструкция:

SetEnvIf Remote_Addr "^XXX\.XXX\.XXX\.XXX" DenyAccess
SetEnvIf Remote_Addr "^XXX\.XXX\.XXX\.XXX" DenyAccess
Order allow,deny
deny from env=DenyAccess
allow from all

где XXX.XXX.XXX.XXX — это запрещенные ip адреса.

7. Как переназначить индексный файл сайта?

Это можно сделать с помощью правила:

DirectoryIndex index3.php

где index3.php это новый индексный файл, который располагается в том же каталоге что и .htaccess.

8. Как добавить префикс www в адрес?

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

Вам также может помочь