вторник, 8 декабря 2015 г.
Joomla и .htaccess - полезности
Всё описанное добавляется в .htaccess и как правило требует модуля Apache - mod_rewrite.
Содержание
[убрать]- 1 Создание короткого адреса карты сайта Xmap
- 2 Редирект URL с www на URL без- www
- 3 Редирект URL без-www на URL с www
- 4 Редирект страниц одного домена на другой
- 5 Редирект со страниц без суффикса .html на страницы с .html
- 6 Удаление дубля главной страницы - index.php из URL
- 7 Запрет листинга каталогов
Создание короткого адреса карты сайта 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
0 коммент.:
Отправить комментарий