Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:htaccess

7.4. Файл .htaccess

Введение

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

Проверка корневой директории

Создадим в /ucms новый файл license_test.txt и запишем в него «текст заглушку»

license_test.txt
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut 
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in 
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat 
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

откроем его в браузере

Файл .htaccess

Создадим в главной директории /ucms файл .htaccess

и запретим к просмотру файла license_test.txt, readme.txt и help.txt находящихся в этой же директории, записав следующий код:

.htaccess
# запретим просмотр файлов с расширением .txt следующих файлов
# license_test.txt, readme.txt, help.txt
RewriteEngine On
RewriteRule ^(license_test|readme|help)\.txt$ - [R=403,L,NC]

Обновим страницу браузера

Теперь при обращении к файлу license_test.txt Веб-сервер выводит сообщение о запрете на доступ к этому файлу.

«Некоторые советы и рекомендации по Apache .htaccess»
.htaccess
# Источник интернет
# Source internet
# Сначала протестируйте на локальном хосте
# Test on localhost first

# Переопределить значение по умолчанию index.php
# Ovrride Default index.php
DirectoryIndex home.php
 
# Запретить доступ к некоторым файлам
# Prevent access to some files
< FilesMatch  "^(config.php|readme.html|license.txt|README.md|.git|.htaccess|error_log)">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
 
# Изменить заголовки Charset и Language
# Change Charset and Language headers
AddDefaultCharset UTF-8
DefaultLanguage en-US
 
# Установить часовой пояс по умолчанию
# Set default time zone
SetEnv IN Asia/Calcutta
 
# Отключить просмотр каталогов
# Disable directory browsing
Options All -Indexes
 
# Кэшировать такие файлы на 7 дней
# Cache these type of files for 7 days
<IfModule mod_headers.c>
<FilesMatch "\.(jpg|jpeg|png|ico|gif|css|js|eot|otf|tt[cf]|woff|woff2|svg|mp4|webm|ogv)$">
    Header set Cache-Control "max-age=604800, must-revalidate"
    Header unset ETag
    FileETag None
</FilesMatch>
 
# Явно отключить кэширование для скриптов и других динамических файлов
# Explicitly disable caching for scripts and other dynamic files
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
 
# Сжатие Java-скрипта
# Java script compression
<FilesMatch "\.js$">
RewriteEngine On
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*)\.js$ $1\.js.gz [L]
ForceType text/javascript
</FilesMatch>
 
# Java-скрипт - выбор кодировки
# Java script - vary accept encoding
<FilesMatch "\.js\.gz$">
ForceType text/javascript
Header set Content-Encoding gzip
Header set Vary Accept-Encoding
</FilesMatch>
 
# Остановить автоматическое добавление файлов веб-хостингом
# Stop auto append files by webhosting
<FilesMatch "\.(php)$">
php_value auto_append_file none
</FilesMatch>
 
# Перенаправление URL без www на URL с www -
# Redirecting non www URL to www URL -
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
 
# Пользовательские страницы ошибок
# Custom error pages
ErrorDocument 400 /error404.php
ErrorDocument 401 /error401.php
ErrorDocument 403 /error403.php
ErrorDocument 404 /error404.php
ErrorDocument 500 /error500.php
 
# Отключить подпись сервера (версия Apache)
# Disable the server signature (apache version)
ServerSignature Off
 
# Максимальный размер загрузки
# Max upload size
php_value upload_max_filesize 5M
 
# Включить сжатие на локальном хосте
# Enable compression on localhost
<IfModule mod_deflate.c>
  SetOutputFilter DEFLATE
</IfModule>
 
# Исправить плохой метатег x-ua
# Fix bad x-ua meta tag
<FilesMatch "\.(htm|html|php)$">
    <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
    </IfModule>
</FilesMatch>
 
# Обслуживать файлы шрифтов
# Serve font files
<FilesMatch ".(eot|ttf|otf|woff)">
	Header set Access-Control-Allow-Origin "*"
</FilesMatch>
 
#Включить gzip с помощью mod_gzip
#Enable gzip with mod_gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
 
# Защитить каталог, отключив выполнение скрипта
# Secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
 
# Тип MIME для веб-шрифтов
# Mime type for web fonts
<IfModule mod_mime.c>
    AddType application/vnd.ms-fontobject   eot
    AddType application/x-font-ttf          ttf ttc
    AddType font/opentype                   otf
    AddType application/x-font-woff         woff woff2
    AddType image/svg+xml                   svg svgz
    AddEncoding gzip                        svgz
</IfModule>
 
# Запретить доступ к папке .git и вернуть 404
# Prevent .git folder access and return 404
RewriteRule ^.*\.git.* - [R=404]
 
# Скрыть php через htaccess, удалит .php из URL-адресов

<IfModule mod_rewrite.c>
# Apache rewrite_module must be on
RewriteEngine on
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [NC,L]
 
# Redirect with moved status
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [R=302,NC,L]
 
# Return 404 if original request is file.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
</IfModule>
 
# Запретить выполнение PHP-скриптов из папки загрузок
# File location example: /uploads/.htaccess
<FilesMatch "\.(?i:php)$">
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
</FilesMatch>
Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/htaccess.txt · Последнее изменение: 127.0.0.1