Настройки htaccess Joomla

301 редирект для Joomla на .htaccess

Опубликовано: 25.01.2015 08:33
Просмотров: 24623

Редирект в Joomla является очень важной частью. Без него ваш сайт превратится в помойку. Пробуем составить правильный редирект для Joomla в файле htaccess

Файл .htaccess - барьер между линкопомойкой и дублями

Наверняка многие из вас видели страницу с ошибкой 404 "Страница не найдена" либо что-то похожее. В CMS Joomla уже есть несколько способов редиректа (т.е. перенаправления) с одной страницы на другую, но они не всегда работают. Да и вообще труднопонимаемы для простого пользователя. Для этого на помощь приходит 301 редирект, который осуществляет "склейку" страниц, дабы не растить огромное количество дублей. Давайте же составим универсальный способ перенаправлений для всех страниц вашего сайта.

Первоначально в каталоге сайта нужно найти файлик htaccess.txt и переименовать его в .htaccess Именно так, и никак иначе! Затем в настройках админ панели требуется поставить галки, что я указал на рисунке ниже.

Настройки seo в Joomla

Далее заходим в файлик .htaccess и начинаем продумывать правила для дальнейших перенаправлений.

1. Убираем дублирование страницы site.ru/index.php на site.ru

1
Redirect 301 /index.php http://site.ru/

Либо прописываем такой код

1
2
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

2. Если у вашего портала несколько доменов, а вы хотите перенаправлять всегда на один, то следует использовать следующий код

1
2
RewriteCond %{HTTP_HOST} !^site.ru$
RewriteRule ^(.*) http://site.ru/$1 [R=301,L]

3. Убираем www в заголовке вашего сайта

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

4. Перенаправляем страницу без суффикса .html на её аналог с суффиксом, т.е. site.ru/report на site.ru/report.html. Данный способ полезен для seo-оптимизации, бородатые дядьки так говорят. Я слушаю их советы)

1
2
3
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]

5. Редиректим пользователя со страницы с GET-параметрами (параметры в адресной строке, вида ?option=1&view-true) на чистую страницу

1
2
RewriteCond %{QUERY_STRING} ^limitstart=0
RewriteRule ^image http://site.ru/image? [R=301,L]

6. Вариант редиректа при смене структуры сайта. Что-то похожее на это: site.ru/blog/raznoe/article - site.ru/blog/article

1
RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

7. Приписываем всем введённым url слеш в конце, дабы уменьшить кол-во дублей (да да, и такое бывает)

1
2
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/ [R=301,L]

А сейчас несколько моих отдельных изысков.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Сжимаем компоненты сайта путем включения 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
 
#Защищаем сайт
#Включаем отслеживание сим-ссылок
Options +FollowSymLinks
#Блокируем все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
#Перенаправляем все подобные на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ index.php [F,L]

Почитайте комментарии, вам должно стать понятно (Если стало плохо, то пишите в комментарии, отвечу всем).

На этом пока что всё. Я описал не всё, но самое важное на мой взгляд. Кстати, недавно вышла интересная статья 10 главных отличий Joomla 3.0 от 2.5. Читайте наш блог, подписывайтесь на рассылку, и всем удачного дня! До встречи!