stanislav-web/Social-Mobile/master/.htaccess - Htaccess File

stanislav-web/Social-Mobile/master/.htaccess

##### 03.11.2012 ###############################################
# Конфигурационный файл Apache для ZendSocial Mobile
# .htaccess
# Stanislav WEB <stanisov@gmail.com>
################################################################

# Устанавливаю кодировку отображения (по умолчанию)
AddDefaultCharset utf-8

# Исполняемые по умолчанию файлы
DirectoryIndex index.php index.html

# Закрываю пустые директории
Options -Indexes

# Enable ETag
FileETag MTime Size
<IfModule mod_expires.c>
    # Устанавливаю кэш браузера на статический контент
    ExpiresActive On
    ExpiresDefault "access plus 1 seconds"
    ExpiresByType text/html "access plus 1 seconds"
    ExpiresDefault "access 7 days"
    ExpiresByType text/javascript "access plus 1 year"
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/x-icon "access 1 year"
</IfModule>

<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    # 30 дней
    <filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 30 дней
    <filesMatch ".(css|js)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 2 дня
    <filesMatch ".(xml|txt)$">
        Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>
</IfModule>

<FilesMatch ".(js|css)$">
    SetOutputFilter DEFLATE
</FilesMatch>

<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css)$">
    Header unset Last-Modified
</FilesMatch>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Делаю склейку www + домен = как один домен
    RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
  

    # Редирект с псевдо поддоменов

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}zf.local$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]zf.local$
    RewriteRule ^$ http://zf.local/user/%1 [NC,R=301,L]

    # Базовый путь директории к кторой применены правила URL
    RewriteBase /

    # Ставлю защиту от различных распространенных эксплоитов
    # Блокировка скриптов подставляемых через base64_encode в URL
    RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR]
    # Блокировка JS подставляемых в URL
    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    # Блокировка скриптов, вызываемых как глобальные в URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
    # Блокировка скриптов, которые модифицируют строку запроса URI
    RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
    RewriteRule .* - [F]

    # Ставлю всегда закрывающий слэш после окончания директории
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !(.+).php$
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*[^/])$ $1/ [L]

    # Создаю единую точку входа,
    # адресуя запросы с директорий и файлов на index.php
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]

    # Переадресовую со строки запроса
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
</IfModule>

SetEnv APPLICATION_ENV development

On Github License

Files

Download PDF of Htaccess file
DEFLATE, ENV, HTTP_HOST, QUERY_STRING, REQUEST_FILENAME, REQUEST_URI

Comments

Apache