.htaccess для Joomla - правильная настройка (ускорение, редирект, кэширование)

Настройка файла .htaccess для JoomlaРад приветствовать вас на страницах сайта Max-Joomla.ru. Урок будет будет проведен на тему - подробный обзор и настройка файла htaccess применяемого в cms Joomla. После правильной настройки файла, мы сможем повысить скорость нашего сайта, установить блокировку эксплоитов, инъекций, задать 301 редирект и установить другие настройки необходимые для правильной работы сайта.

 Что такое .htaccess?

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

.htaccess - файл где можно задать дополнительные настройки (конфигурации), для веб-сервера Apache (и ему подобных серверов). Позволяет указать большое количество настроек и расширений, для правильной работы веб-сервера в отдельно взятых каталогаг (папок), а в нашем случае отдельных сайтов построенных на cms Joomla.

  

Основной функционал файла htaccess

С помощью данного файла мы можем настроить редирект (грамотную переадресацию поисковых ботов и посетителей), указать кэш (css, js, изображения и др.), блокировка MySql и файловых инъекций, запрет на доступ к отдельным папкам и каталогам, установка блокировки пользователей по ip, самостоятельная обработка ошибок web-сервера и другие возможности. 

 Перед самой настройкой файла .htaccess, нам необходимо проверить настройки SEO в админ-панели Joomla. Итак заходим в "админ-панель" - "сайт" - "общие настройки".

Настройка ЧПУ и включение mod_rewrite

  • "Включить SEF (ЧПУ)" - ставим Да. Делает ссылки человеко-понятными, из плюсов можно отметить - улучшение для поисковой оптимизации, минусы - создает дубли страниц.
  • "Перенаправление URL" - ставим Да. Внимание - прежде чем включить данную опцию, всем пользователям сервера Apache (используется на большинстве виртуальных хостингах) - следует переименовать файл htaccess.txt в файл .htaccess (впереди обязательно точка, не имеет расширения).
  • "Добавлять суффикс к URL" - устанавливаем по желанию (я поставил нет). Если поставить Да - то к каждому url-адресу будет добавляться суффикс, в зависимости от типа документа. Например html, php и другие.
  • "Алиасы в Unicode" - ставим Нет.
  • "Включить название сайта в заголовок страницы" - по желанию (После, До, Нет).

Теперь давайте проверим включен ли системный плагин SEF. Заходим в "Расширения" - "Менеджер плагинов" и ищем плагин "Система-SEF". Если он выключен, то его необходимо активировать.

системный плагин SEF

Настройка файла .htaccess для Joomla

Сразу хочу отметить, что предлагаемый мной .htaccess не является панацеей, для всех web-ресурсов на cms Joomla, но на начальном этапе вполне работоспособный и достаточно качественный.

Итак первой секцией нам необходимо задать основные опции:

 Options +FollowSymLinks -Indexes
  • Директива Options - определяет какие свойства сервера доступны. Опции со знаком "+" будут добавлены к опциям включенным на данный момент, со знаком "-" - будут удалены.
  • +FollowSymLinks - данная опция позволяет нам использовать символические ссылки на каталоги или файлы, которые не находятся в пределах корня вашего сайта.
  • -Indexes - запрет на листинг каталогов, если в них нет индексного файла (например index.html - заглушка).
AddDefaultCharset utf-8
  • Кодировка по умолчанию.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://vashsayt.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
  • <IfModule mod_rewrite.c> - данное условие предупреждает 500 ошибку сервера, которая может возникнуть, если у вашего хостера не будет установлен модуль mod_rewrite, который в свою очередь входит в сборку сервера Apache по умолчанию.
  • RewriteEngine On - Данная секция отвечает за включения mod_rewrite, который в свою очередь используется, для SEF, а также для перенаправления пользователей по нужным адресам.
  • RewriteBase / - Корневая директория, куда устанавливается Joomla.
  • Следующие 4 строки - отвечают за перенаправление со страниц с /index.php на станицы без index.php. Например пользователь зайдет на http://vashsayt.com/index.php - в этом случае его перебросит (301 редирект) на http://vashsayt.com. Избавление от дублей страниц.
  • Последующие 2 строки - отвечают за перенаправление пользователей с www.vashsayt.com на vashsayt.com. Также убирает дубли страниц.
  • </IfModule> - конец условия.
DirectoryIndex index.php
  • Если у вас в папке находится файлы index.php и index.html, то тогда данная секция укажет серверу - какой файл является более главным (в нашем случае index.php).

 

Настройка php на хостинге:

<ifModule mod_php.c>
php_value register_globals 0
php_value safe_mode 0
php_value allow_url_fopen 0
php_value display_errors 0
php_value file_uploads 1
php_value magic_quotes_gpc 1
php_value magic_quotes_runtime 0
php_value upload_max_filesize 20M
php_value post_max_size 10M
php_value max_execution_time 100
php_flag register_globals Off
php_flag display_errors Off
php_flag file_uploads On
php_flag allow_url_fopen off
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime Off
</ifModule>
  • <ifModule mod_php.c> - условие которое предупреждает от 500 ошибки, если на сервере не будет установлен модуль mod_php.
  • php_value register_globals 0 - используется для повышения безопасности. Отключает режим register_globals в PHP.
  • php_value safe_mode 0 - отключение потенциально опасной директивы.
  • php_value allow_url_fopen 0 - отключение потенциально опасной директивы.
  • php_value display_errors 0 - отключение вывода ошибок в браузер.
  • php_value file_uploads 1 - загрузка по 1 файлу за раз (методом post).
  • php_value magic_quotes_gpc 1 - функция которая автоматически экранирует данные GET, POST, COOKIE.
  • php_value magic_quotes_runtime 0 - избавление от ошибок, "магические кавычки"
  • php_value upload_max_filesize 20M - устанавливаем максимальное значение загружаемых файлов (по умолчанию в основном 8М)
  • php_value post_max_size 10M -  максимальное значение постинга (по умолчанию в основном 2М)
  • php_value max_execution_time 100 - максимальный лимит времени (в секундах), для выполнения скриптов (по умолчанию в основном 30 секунд).

Все ненужные или вызывающие ошибку строки, вы можете закомментировать или удалить.

Правила обработки запросов для блокировки распространенных эксплоитов:

RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%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]
  • RewriteCond %{QUERY_STRING} proc/self/environ [OR] - блокировка атак на ваш сайт.
  • RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] - блокировать запрос, который пытается установить значение mosConfig непосредственно через URL.
  • RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR] - заблокировать запрос, который пробует испортить base64_encode через URL
  • RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] - заблокировать запрос, который содержащий тег <script> в URL.
  • RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] - заблокировать запрос, который пробует установить значение глобальных переменных PHP через URL.
  • RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) - заблокировать запрос, который пробует изменить переменную _REQUEST через URL.
  • RewriteRule ^(.*)$ index.php [F] - перенаправлять заблокированные запросы на страницу 403 с запрещенными ошибками.

 

Блокировка прямого доступа к ядру:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
  • "RewriteCond %{REQUEST_FILENAME} -f" - условие, которое указывает, что все существующие файлы не будут обрабатываться регулярными выражениями.
  • Все остальные строки отвечают за блокировку и перенаправление через index.php, при попытке получить прямой доступ к файлам с расширением .php, .ini, xml и указанным выше папкам.
  • NC - регистро-независимая проверка.
  • OR - условие которое сопоставляется с другими по правилу ИЛИ.

 

Строки ниже, отвечают за блокирование MySQL инъекций:

RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L] 

 

Код отвечающий за блокировку файловых инъекций:

RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]

 

Запрет доступа к файлам htaccess.txt, configuration.php и php.ini:

 RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]

 

Раздел SEF ядра Joomla:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]


Увеличение скорости сайта с помощью правил в файле .htaccess

 Для того, что бы ускорить скорость вашего сайта, мы будем использовать два метода - сжатие и кэширование.

 

Сжатие:

Сервер Apache может использовать два модуля для сжатия - mod_deflate и mod_gzip. Почти у всех провайдеров они есть по умолчанию, хотя может и не быть. mod_deflate - наиболее распространенный модуль, его мы и рассмотрим первым.

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css
text/javascript application/javascript application/x-javascript
</ifModule>

С помощью данного модуля мы смогли сжать весь контент, а именно html, css, js. Как видно, для того что бы указать какие файлы необходимо сжимать, мы указали mime type данных файлов. Также можно было добавить изображения или видео, но данная процедура практически бесполезна, так как эти файлы уже довольно хорошо сжаты.

Следующий модуль для Gzip сжатия - mod_gzip. Для корректной работы модуля, добавьте следующие строки в файл .htaccess.

<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 mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Хотя данный модуль используется реже, но качество сжатие практически одинаково у обеих модулей.

Примечание: Используя данные модули сжатия, вы сможете существенно ускорить загрузку страниц вашего сайта, так как все, что можно будет сжать - будет сжиматься у вас на сервере и передаваться в браузеры пользователей, но этим самым действием вы увеличите нагрузку на свой сервер. Если у вас в запасе присутствуют дополнительные мощности на сервере - то включаем обязательно, а если нагрузка практически на пике - то стоит быть осторожным, что бы хостер не заблокировал ваш ресурс. Нагрузка может подскочить на 20-60%. 

 

Кэширование:

Кэширование страниц можно включить используя два замечательных модуля - mod_headers и mod_expires. В основном у провайдера стоит хоть один из этих модулей, но во избежание ошибки 500, мы будем использовать проверку наличия модулей.

<ifModule mod_headers.c>
#кэшировать html и htm файлы на один день <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" #кэшировать css, javascript и текстовые файлы на одну неделю <FilesMatch "\.(js|css|txt)$"> Header set Cache-Control "max-age=604800" #кэшировать флэш и изображения на месяц <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$"> Header set Cache-Control "max-age=2592000" #отключить кэширование <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control
</FilesMatch>
</ifModule>

По комментарием в коде модуля легко можно понять, что за что отвечает и вы легко сможет настроить временной интервал кэширования под свои нужды. 

Рассмотрим следующий модуль отвечающий за кэширование страниц - mod_expires:

<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"
#кэшировать флэш и изображения на месяц
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
#кэшировать css, javascript и текстовые файлы на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
#кэшировать html и htm файлы на один день
ExpiresByType text/html "access plus 43200 seconds"
#кэшировать xml файлы на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>

Все закомментированные строки можно удалить.

Ниже я выложил готовый файл .htaccess. Если есть вопросы - пишите в комментариях.

Обязательно посмотрите какие блоки кода вам действительно необходимы, отнеситесь с вниманием к файлу .htaccess.

---------------------------------------------------------------------------------------------------------------------------------

 

##файл .htaccess для Joomla. Создан на сайте http://max-joomla.ru

##Может быть закомментировано, если вызывает ошибку сервера. Возможность использовать
##символические ссылки на каталоги или файлы, которые не находятся в пределах корня
##вашего сайта. Запрет на листинг каталогов.
Options +FollowSymLinks -Indexes
##

## Кодировка по умолчанию
AddDefaultCharset utf-8
##

 

## Включение модуля mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
##

##Корневая директория - начало
RewriteBase /
##Корневая директория конец

##Редирект с index.php на / - начало
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://vash-sayt.com/ [R=301,L]
##Редирект с index.php на / - конец

 

##Редирект с www на без www - начало
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
##Редирект с www на без www - конец

 

</IfModule>
## Конец модуля mod_rewrite

 

##Индексная страница
DirectoryIndex index.php
##

 

## Настройки хостинга - начало
<ifModule mod_php.c>
php_value register_globals 0
php_value safe_mode 0
php_value allow_url_fopen 0
php_value display_errors 0
php_value file_uploads 1
php_value magic_quotes_gpc 1
php_value magic_quotes_runtime 0
php_value upload_max_filesize 20M
php_value post_max_size 10M
php_value max_execution_time 100
php_flag register_globals Off
php_flag display_errors Off
php_flag file_uploads On
php_flag allow_url_fopen off
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime Off
</ifModule>
## Настройки хостинга - конец

 

## Правила обработки запросов для блокировки распространенных эксплоитов - начало
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%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]
## Правила обработки запросов для блокировки распространенных эксплоитов - конец

 

##Блокировка прямого доступа к ядру - начало
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
##Блокировка прямого доступа к ядру - конец

 

##Блокировка MySQL инъекций - начало
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
##Блокировка MySQL инъекций - конец

 

##Блокировка файловых инъекций - начало
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
##Блокировка файловых инъекций -конец

 

## Запретит доступа к htaccess.txt, configuration.php и php.ini
RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]
##

 

## Раздел SEF ядра Joomla - начало
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
##Раздел SEF ядра Joomla - конец

 

##Ускорение загрузки сайта

 

##Gzip сжатие с помощью модуля mod_deflate - начало
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
##Gzip сжатие с помощью модуля mod_deflate - конец

 

##Gzip сжатие с помощью модуля 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 mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^application/x-font-woff.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
##Gzip сжатие с помощью модуля mod_gzip - конец

 

##Кэширование с помощью модуля mod_headers - начало
<ifModule mod_headers.c>
#кэшировать html и htm файлы на один день
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#кэшировать флэш и изображения на месяц
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#отключить кэширование
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
##Кэширование с помощью модуля mod_headers - конец

 

##Кэширование с помощью модуля mod_expires - начало
<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"
#кэшировать флэш и изображения на месяц
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
#кэшировать css, javascript и текстовые файлы на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
#кэшировать html и htm файлы на один день
ExpiresByType text/html "access plus 43200 seconds"
#кэшировать xml файлы на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
##Кэширование с помощью модуля mod_expires - конец

-----------------------------------------------------------------------------------------------------------------------


Используйте кнопочки - буду очень благодарен!!!

Комментарии   

Andrei
0 # Andrei 28.10.2016 10:55
При обращении к сайту с utm меткой в адресе или просто если добавить /?utm.
Открывается другая страница с другим шаблоном
Ответить | Ответить с цитатой | Цитировать
Игорь
0 # Игорь 27.10.2016 23:27
Спасибо! Актуально, работает! Исправил ошибку "500"
Ответить | Ответить с цитатой | Цитировать
Сергей
+1 # Сергей 13.09.2016 22:22
Поделюсь дополнением:

# Редирект Url, содержащие index.php на без него
#
RewriteRule ^index.php/(.*)$ http://Ваш_сайт.ru/$1 [R=301,L]
#
# Конец редирект Url, содержащие index.php на без него
Ответить | Ответить с цитатой | Цитировать
boind
+6 # boind 12.02.2016 09:48
Самая полная и полезная статья по этой тематике. Спасибо
Ответить | Ответить с цитатой | Цитировать
Руслан
0 # Руслан 04.01.2016 19:13
Здравствуйте. Скажите, действуют ли до сих пор те коды, которые Вы привели? Прошло 1,5 года с момента публикации, вышли новые версии Joomla.
Ответить | Ответить с цитатой | Цитировать
Super User
0 # Super User 08.01.2016 19:15
Да действуют :roll: !
Ответить | Ответить с цитатой | Цитировать
Руслан
0 # Руслан 09.01.2016 21:18
Немного не по теме, извините.
Правильно ли я понимаю:
Если я делаю сайт не через конструктор, а самостоятельно(зарегался на хостинге, купмл домен, установил CMS) то необходимо знание языка программирования PHP; HTML и без них никак?
Ответить | Ответить с цитатой | Цитировать
Super User
0 # Super User 10.01.2016 15:37
Вообще можно обойтись без знания PHP, думаю что где то 10-15% вебмастеров знают данный язык программирования хотя бы на среднем уровне.
HTML + CSS - тоже можно обойтись, так как в cms есть встроенные компоненты, например тот же редактор текста.
Но все же настоятельно рекомендую изучить HTML и CSS, хотя бы на базовом уровне, это не займет много времени (за недельку можно освоить :-) ), на а дальше при работе с вашим сайтом, знания по чучуть будут добавляться :lol: !
Ответить | Ответить с цитатой | Цитировать
Леонид
+1 # Леонид 31.12.2015 22:32
Спасибо. Очень полезная статья.
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 11.12.2015 19:17
Добрый день! Использовал ваш файл .htaccess, у меня сайт на joomla 3.4.5, сайт с http//site.ru не открывается, а если просто site.ru открывается) подскажите что может быть в настройках?
Ответить | Ответить с цитатой | Цитировать
Алексей
0 # Алексей 19.10.2015 22:16
День добрый.
Имеется сайт на Джумле 1.5. Для людей доступен, но для роботов и прочих сервисов - нет (выдаёт 500 ошибку). Даже в панель вебмастера яндекса не могу добавить сайт.
Попробовал ваш htaccess, но не помогло.
Где ещё можно копать?
Ответить | Ответить с цитатой | Цитировать
Олег
0 # Олег 04.09.2015 10:09
Хорошая статья, добавил в закладки!
После моих манипуляций с редиректом в htaccess получил работающее правило для index.php и .html на конце. Но появилось много новых страниц в выдаче вида sait/razdel/razdel2.html/razdel/razdel2
Что я мог не правильно прописать??
CMS Joomla 3.4.3
Ответить | Ответить с цитатой | Цитировать
zipas
0 # zipas 01.09.2015 09:09
Почему то эта строчка я ее подчеркнул в файле .htaccess если она есть то пропадает на главной странице сайта изображение ведущих статей а когда идешь по статье все показывает как будто блокирует что то компонент k2
##Блокировка прямого доступа к ядру - начало
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/cli\/
RewriteRule ^(.*)$ index.php [R=404,L]
##Блокировка прямого доступа к ядру - конец
Ответить | Ответить с цитатой | Цитировать
Zipas
0 # Zipas 31.08.2015 19:02
После внесения данных .htaccess почему то на главной странице перестали отображаться фото материала? в чем причина
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 23.08.2015 11:54
Настройка php на хостинге - эта глава тоже должна быть в .htaccess для Joomla?
У меня в этом файле записано только AddDefaultCharset utf-8.
Когда я перенёс файлы и БД с локального сервера на сервер хостинга, то форма комментирования изменилась с такой как эта до упрощённой, которая не имеет смысла и появились новые значки, которые я не могу удалить с административной панели
Ответить | Ответить с цитатой | Цитировать
АндрейК
+1 # АндрейК 20.08.2015 14:27
Доступно и очень полезно. Вечером буду тестировать. Автору респект и уважуха! Поставил сайт в закладки.
Ответить | Ответить с цитатой | Цитировать
Алекс
0 # Алекс 07.07.2015 18:39
Спасибо, разобрался, кстати - нужно добавить что сжатие нужно включить так же в панеле админке жумла.
Ответить | Ответить с цитатой | Цитировать
Алекс
0 # Алекс 04.07.2015 17:44
Скажите пожалуйста по поводу кэширования и сжатия.
1) Вы используете сразу 2 метода кэширования и сжатия - это нормально, или лучше выбрать 1 метод?
2) В кэширование указан пункт:
#отключить кэширование

Header unset Cache-Control
- обращаю внимания на строку "#отключить кэширование" и не мгу понять, ее нужно удалить из кода?
Ответить | Ответить с цитатой | Цитировать
Алексей
0 # Алексей 13.04.2015 06:46
Как сделать редирект с site.ru/1/ на site.ru/1
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 23.03.2015 13:37
Спасибо, буду мучать сайт :-) дальше. А по поводу настройки robots.txt не подскажите? Или может готовый не выложите? А то я в интернете находил на других сайтах, только стрёмно использовать как то.
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 23.03.2015 10:37
Если по такой схеме http://joomlaforum.ru/index.php?topic=193079.0.0 как здесь описано сделаю, будет работать?
Ответить | Ответить с цитатой | Цитировать
Super User
+2 # Super User 23.03.2015 11:22
Андрей, на счет rel="canonical" - то да, на джумловском форуме, по вашей ссылке можно быстро настроить, там вы просто работаете с кодом своего шаблона. Теперь на тему вашего сайта.
1) Сделайте правильный robots.txt - у вас в индексе Googla полно страниц поиска.
2) Вылет из Яндекса - скорее всего связан, с проблемами в вашем коде. Там все очень намучено - у меня отладчик даже не смог посчитать ошибки, после 5000 я остановился. Если Яндекс считает такие ошибки - то тут естественно бан. Там может быть одна или несколько циклирующихся ошибок.
3) Я думаю вы зря поставили защиту от копипаста - она все равно не работает!
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 23.03.2015 10:22
ЧПУ вроде настраивал, ну в админке выставлял на человекоподобные урлы. А как установить для нужных страниц сайта rel="canonical"?
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 23.03.2015 10:17
Мой сайт http://stroykasam.ru
А что такое ЧПУ, это короткие ссылки?
Подскажите пожалуйста как сделать, я конечно сейчас сам начну гуглить, но не откажусь от любой помощи. Спасибо, а Ваши настройки по .htaccess реально помогли, сайт работает быстрее...
Ответить | Ответить с цитатой | Цитировать
Super User
0 # Super User 23.03.2015 00:53
При использовании .htaccess у вас должно быть настроено ЧПУ. Обратите внимание на дубли страниц и редирект установленный в .htaccess. Установите для нужных страниц сайта rel="canonical".

Проблема у вас скорее всего или с дублями или с несуществующими страницами. Ну и ваш сайт не мешало бы указать.
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 22.03.2015 01:11
А у меня сайт полностью с яндекса вылетел, написанно в выдаче о страниц, хотя перед этим написано что роботом загруженно 758 страниц. Чё теперь делать? Кто нибудь подскажет?
Ответить | Ответить с цитатой | Цитировать
AndreiAverko
0 # AndreiAverko 28.11.2014 12:12
только это надо делать на новом сайте, а не то смело летите из выдачи месяца на 3
Ответить | Ответить с цитатой | Цитировать
Super User
+1 # Super User 28.11.2014 15:27
Прежде, чем заявлять "про полет из выдачи" - хоть бы какие то аргументы навели, и почему на 3 месяца. :roll:

Мною лично была проведена данная операция - изменение стандартного .htaccess на двух своих сайтах joomla (одному 3 года, второму пол года) и все изменения только в лучшую сторону. А именно ускорение загрузки страниц - что положительно сказывается также на ранжировании сайта в поисковой выдачи, как Яндекса так и Google.
Ответить | Ответить с цитатой | Цитировать
Super User
0 # Super User 11.09.2014 17:24
AV: Спасибо за комментарий! Хочу еще добавить, что бы посмотреть результат работы нового .htaccess - вы можете протестировать ваш сайт на Page Speed - developers.google.ком/speed/pagespeed/insights/
Ответить | Ответить с цитатой | Цитировать
AV
+1 # AV 11.09.2014 06:40
Круто! Вот это работу проделали!

У меня работает на 3.3.х

Добавлю от себя, что если нужен редирект на www, то вот код на замену:


RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Это для какой версии?
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить