Действия

Joomla и .htaccess - полезности

Материал из База знаний Joomla

Всё описанное добавляется в .htaccess и как правило требует модуля Apache - mod_rewrite.

Создание короткого адреса карты сайта Xmap

Код позволяет создать адрес вида sitemap.xml и в таком виде добавлять его сервисы вебмастера поисковиков

RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml&format=html [L]
 

На сайте самого Xmap говорится о другом варианте

RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml

но он часто вызывает 500 ошибку сервера


Редирект URL с www на URL без- www

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


Редирект URL без-www на URL с www

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

Редирект страниц одного домена на другой

RewriteCond %{HTTP_HOST} ^(www\.)?joomla-docs\.ru
RewriteRule ^(.*)$ http://joomla-support.ru/$1 [R=301,L]

Конструкция перенаправляет все страницы одного домена на другой домен.

Редирект со страниц без суффикса .html на страницы с .html

Редирект будет полезен, если вдруг решили добавить страницам окончание в виде .html Т.е. стандартный роутер (преобразователь URL) не делает автоматических редиректов при добавлении суффиксов, то сделаем редиректы самостоятельно:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)$ /$1.html [R=301,L]


Удаление дубля главной страницы - index.php из URL

Последние версии SEF-компонентов (sh404SEF и MijoSEF) не делают автоматических редиректов с _http://joomla-docs.ru/index.php на корень сайта _http://joomla-docs.ru/, поэтому добавляем код

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://joomla-docs.ru/ [R=301,L]

joomla-docs.ru естественно меняем на свой домен

Все другие конструкции могу приводить к проблемам с POST-запросами напрямую через файл index.php (вместо выполнения получим редирект на корень сайта). Поэтому для редиректа обязательно исключение запросов POST.


Запрет листинга каталогов

Стандартно, при прямом доступе к каталогу с отсутствующим пустым файлом index.html (index.htm), открывается список содержимого каталога. Следующие директивы помогают избежать этого.

IndexIgnore *
Options -Indexes