.htaccess для Kohana 3+

Данный .htaccess делает редирект с www на домен без www и обладает всеми возможными защитами при условии использования фреймворка Kohana 3 версии.

# Базовые настройки
Options All -ExecCGI -Indexes -Includes -MultiViews +FollowSymLinks

# Установим стандартную кодировку в utf-8
AddDefaultCharset utf-8

# Принудительно установим кодировку для слеюдующих типов файлов
AddCharset utf-8 .php .html .css .js

# Установим стандартный часовой пояс
<IfModule mod_setenvif.c>
    SetEnv TZ Europe/Moscow
</IfModule>
ServerSignature Off

# Настройки редриектов
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Полная переадресация с www на домен с учётом текущей страницы
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    # Переадресация с /index.php на /
    RewriteCond %{THE_REQUEST} ^.*/index\.php
    RewriteRule ^(.*)index.php$ /$1 [R=301,L]

    # Защитим основные директории от прямого доступа
    RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

    # Разрешим почти всем возможным файлам и директориям непосредственное отображаение
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # Переадресуем все URLы на index.php/URL
    RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>

<IfModule mod_rewrite.c>
    # Блокировать любой запрос, пытающийся испортить base64_encode через URL
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    # Блокировать любой запрос, содержащий тег <script> в URL
    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    # Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    # Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    # Перенаправлять заблокированные запросы
    RewriteRule .* index.php [F]
</IfModule>

# Запрет к открытию файлов следующих типов
<FilesMatch ".(htaccess|example|log|md|sh)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

# Защитим скрытые файлы от того, чтобы их можно было очень просто увидеть
<Files .*>
    Order Deny,Allow
    Deny From All
</Files>

# Некоторые настройки php
<ifModule mod_php.c>
    php_value upload_max_filesize 5M
    php_value post_max_size 10M
    php_value default_charset utf-8
    php_flag  short_open_tag On
</ifModule>
Exit mobile version