Настройка файла .htaccess для работы с Joomla. Настройка htaccess для joomla 3
Настройка файла .htaccess для работы с Joomla
Файл .htaccess – является неотъемлемой частью сайтостроения, он кроет в себе массу возможностей.
Настройками .htaccess можно обеспечить защиту контента, редиректы с одной страницы или домена на другой, сменить расширение страниц (например менять расширение с php на html), устанавливать кеширование страницы и многое другое.
Перед началом экспериментов не забудьте сохранить копию старого файла.
1) Ограничение доступа к контенту.
Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
2) Ограничение доступа по user-agent.
Блокируем всех пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot
3) Безопасный редирект 301.
Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
4) Своя страница 401-403-404-500 с ошибками
Чтобы перенаправить посетителя на самодельную 404-страницу
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
5) Защита файлов Чтобы защитить ваши файлы от просмотра
order allow,deny deny from all
6) Кеширование
Код кэширует посещённые страницы, снижая время загрузки. 86400 – количество секунд, меняйте на своё усмотрение
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 86400 seconds"
7) Gzip-сжатие Используйте Gzip , чтобы ваш сайт грузился быстрее.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/j-avascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html
joomru.ru
Настройка файла .htaccess для работы с Joomla
Файл .htaccess – является неотъемлемой частью сайтостроения, он кроет в себе массу возможностей.
Настройками .htaccess можно обеспечить защиту контента, редиректы с одной страницы или домена на другой, сменить расширение страниц (например менять расширение с php на html), устанавливать кеширование страницы и многое другое.
Перед началом экспериментов не забудьте сохранить копию старого файла.
1) Ограничение доступа к контенту.
Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
2) Ограничение доступа по user-agent.
Блокируем всех пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot
3) Безопасный редирект 301.
Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
4) Своя страница 401-403-404-500 с ошибками
Чтобы перенаправить посетителя на самодельную 404-страницу
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
5) Защита файлов Чтобы защитить ваши файлы от просмотра
order allow,deny deny from all
6) Кеширование
Код кэширует посещённые страницы, снижая время загрузки. 86400 – количество секунд, меняйте на своё усмотрение
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 86400 seconds"
7) Gzip-сжатие Используйте Gzip , чтобы ваш сайт грузился быстрее.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/j-avascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html
joomru.ru
Настройка файла .htaccess для работы с Joomla
Файл .htaccess – является неотъемлемой частью сайтостроения, он кроет в себе массу возможностей.
Настройками .htaccess можно обеспечить защиту контента, редиректы с одной страницы или домена на другой, сменить расширение страниц (например менять расширение с php на html), устанавливать кеширование страницы и многое другое.
Перед началом экспериментов не забудьте сохранить копию старого файла.
1) Ограничение доступа к контенту.
Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
2) Ограничение доступа по user-agent.
Блокируем всех пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot
3) Безопасный редирект 301.
Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
4) Своя страница 401-403-404-500 с ошибками
Чтобы перенаправить посетителя на самодельную 404-страницу
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
5) Защита файлов Чтобы защитить ваши файлы от просмотра
order allow,deny deny from all
6) Кеширование
Код кэширует посещённые страницы, снижая время загрузки. 86400 – количество секунд, меняйте на своё усмотрение
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 86400 seconds"
7) Gzip-сжатие Используйте Gzip , чтобы ваш сайт грузился быстрее.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/j-avascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html
joomru.ru
Настройка файла .htaccess для работы с Joomla
Файл .htaccess – является неотъемлемой частью сайтостроения, он кроет в себе массу возможностей.
Настройками .htaccess можно обеспечить защиту контента, редиректы с одной страницы или домена на другой, сменить расширение страниц (например менять расширение с php на html), устанавливать кеширование страницы и многое другое.
Перед началом экспериментов не забудьте сохранить копию старого файла.
1) Ограничение доступа к контенту.
Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc] RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
2) Ограничение доступа по user-agent.
Блокируем всех пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot
3) Безопасный редирект 301.
Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
4) Своя страница 401-403-404-500 с ошибками
Чтобы перенаправить посетителя на самодельную 404-страницу
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
5) Защита файлов Чтобы защитить ваши файлы от просмотра
order allow,deny deny from all
6) Кеширование
Код кэширует посещённые страницы, снижая время загрузки. 86400 – количество секунд, меняйте на своё усмотрение
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 86400 seconds"
7) Gzip-сжатие Используйте Gzip , чтобы ваш сайт грузился быстрее.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/j-avascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html
joomru.ru
Разбираем .htaccess для Joomla! | LimanWorld
Итак, возьмем .htaccess от Joomla! (я взял от версии 3.4.1) и посмотрим, что в нем интересного и как это все работает.
В первой незакомментированной строке видим команду IndexIgnore
IndexIgnore *Если в конфигурации вашего сервера или в .htaccess файле включена опция
Options +Indexes, то при обращении к папке, в которой нет файлов index.php или index.html, на экране браузера будет выведен листинг этой папки со всеми файлами и вложенными папками.
Команда IndexIgnore предназначена для исключения каких либо файлов из этого листинга, например команда
IndexIgnore .htaccess .ftpquota .DS_Store robots.txtисключает из листинга файлы .htaccess, .ftpquota, .DS_Store и robots.txt .Указанная в .htaccess от Joomla! команда
IndexIgnore *исключает из листинга все файлы. Т.е. листинг будет, но он будет пустой.
Далее следует строка.
Options +FollowSymlinksЭта строка предназначена для корректной работы перенаправления в некоторых конфигурациях серверов. Но если она уже установлена в конфигурации сервера, то ее повторное использование может привести к проблемам. Возможно, вам потребуется закомментировать ее, если после переименования дистрибутивного htaccess.txt в .htaccess ваш сайт перестанет работать.
Следующая строка
Options -Indexesотключает вывод листинга при отсутствии в папке index-файла. Если вы все-таки предполагаете использовать вывод листинга какой либо папки, то вам придется более тонко настроить команду IndexIgnore, так как она имеет глобальное действие на все поддиректории. Например
IndexIgnore .htaccess *.php *.xml *.cgi *.jsИдем дальше. Начинается самое интересное — перенаправление.
RewriteEngine OnКоманда включает механизм перенаправления в модуле mod_rewrite.c .
Далее следует блок строк решающий некоторые вопросы безопасности.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F]Команды RewriteRule этого блока проверяют строку параметров запроса по следующему алгоритму:
- Строка параметров запроса закодирована в Base64
- Строка параметров запроса содержит тэг <script>. Флаг [NC] в конце второй строки указывает, что проверка выполняется без учета регистра.
- Строка параметров запроса содержит операцию установки php- переменной GLOBALS через url
- Строка параметров запроса содержит операцию установки php-переменной $_REQUEST через url
В случае выполнения одного из этих условий, выполняется правило
RewriteRule .* index.php [F]Флаг [F] (от forbidden — запрещено) в этом правиле дает инструкцию серверу немедленно отправить ответ с кодом ошибки 403. При этом будет произведено перенаправление на главную страницу сайта index.php как указано в команде.
Далее начинается блок SEF-оптимизации.
Первая строка устанавливает переменную окружения HTTP_AUTHORIZATION переданными в запросе параметрами HTTP авторизации.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]Далее идут строки:
RewriteCond %{REQUEST_URI} !^/index\.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]Рассмотрим по порядку. Первая строка проверяет отсутствие index.php в строке запроса.
RewriteCond %{REQUEST_URI} !^/index\.phpСледующая строка проверяет, что запрос не указывает на существующий файл.
RewriteCond %{REQUEST_FILENAME} !-fСледующие строка проверяет, что запрос не указывает на существующую директорию.
RewriteCond %{REQUEST_FILENAME} !-dТаким образом, благодаря этим строкам, правило не будет выполняться если в запросе указан существующий файл или директория.
В случае, если вышеперечисленные условия выполнены, отрабатывает правило в последней строке.
RewriteRule .* index.php [L]Флаг [L] означает, что это последнее правило.
Это правило переадресовывает запрос к скрипту index.php . Т.е. не зависимо от того что у нас передано в url, если это не файл и не папка, будет выполнен скрипт index.php . При этом строка исходного запроса будет доступна скрипту через суперглобальный массив $_SERVER.
Например, запрос
http:/yoursite.com/news/2015/07/01?prm1=556фактически выполнит
http:/yoursite.com/index.phpно в скрипте из $_SERVER мы можем получить следующее
$_SERVER['REQUEST_URI'] --> 'news/2015/07/01?prm1=556' $_SERVER['QUERY_STRING'] --> 'prm1=556'Финиш.
limanworld.ru