Стандартный .htaccess для MODX
Оригинальный файл .htaccess для MODX будет полезен в том случае, если вы его случайно удалили или некорректно отредактировали.
О MODX
«MODX – это профессиональный многофункциональный инструмент, предназначенный для разработки сайтов, позволяющий управлять как контентом на сайте, так и самим сайтом в целом! Использование MODX полностью бесплатно».
— modx.com
Исходный код
Содержимое стандартного файла .htaccess для CMS MODX Revolution 2.
# MODX supports Friendly URLs via this .htaccess file. You must serve web
# pages via Apache with mod_rewrite to use this functionality, and you must
# change the file name from ht.access to .htaccess.
#
# Make sure RewriteBase points to the directory where you installed MODX.
# E.g., «/modx» if your installation is in a «modx» subdirectory.
#
# You may choose to make your URLs non-case-sensitive by adding a NC directive
# to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
# Rewrite www.domain.com -> domain.com — used with SEO Strict URLs plugin
#RewriteCond %
#RewriteCond %
#RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
#
# or for the opposite domain.com -> www.domain.com use the following
# DO NOT USE BOTH
#
#RewriteCond %
#RewriteCond %
#RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]
# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
# https://www.domain.com when your cert only allows https://secure.domain.com
#RewriteCond %
#RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]
# The Friendly URLs part
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# Make sure .htc files are served with the proper MIME type, which is critical
# for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
#AddType text/x-component .htc
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP’s register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# To verify that this option has been set to OFF, open the Manager and choose
# Reports -> System Info and then click the phpinfo() link. Do a Find on Page
# for «register_globals». The Local Value should be OFF. If the Master Value
# is OFF then you do not need this directive here.
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
#php_flag register_globals Off
# For servers that support output compression, you should pick up a bit of
# speed by un-commenting the following lines.
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
# The following directives stop screen flicker in IE on CSS rollovers. If
# needed, un-comment the following rules. When they’re in place, you may have
# to do a force-refresh in order to see changes in your designs.
#ExpiresActive On
#ExpiresByType image/gif A2592000
#ExpiresByType image/jpeg A2592000
#ExpiresByType image/png A2592000
#BrowserMatch «MSIE» brokenvary=1
#BrowserMatch «Mozilla/4.4<2>» brokenvary=1
#BrowserMatch «Opera» !brokenvary
#SetEnvIf brokenvary 1 force-no-vary
Содержимое стандартного файла .htaccess для CMS MODX Evolution 1.
# For full documentation and other suggested options, please see
# http://svn.modxcms.com/docs/display/MODx096/Friendly+URL+Solutions
# including for unexpected logouts in multi-server/cloud environments
# and especially for the first three commented out rules
#php_flag register_globals Off
#AddDefaultCharset utf-8
#php_value date.timezone Europe/Moscow
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %
RewriteRule .* — [F,L]
# Rewrite domain.com -> www.domain.com — used with SEO Strict URLs plugin
#RewriteCond %
#RewriteCond %
#RewriteRule (.*) http://www.example.com/$1 [R=301,L]
# Exclude /assets and /manager directories and images from rewrite rules
RewriteRule ^(manager|assets)/*$ — [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ — [L]
htaccess MODx Evolution
Что это за файл .htaccess и для чего он вообще нужен?
Файл .htaccess содержит ряд инструкций, которые необходимы для внутренней оптимизации сайта, а именно указывает главное зеркало сайта, настройки ЧПУ, кодировку сайта по умолчанию и многое другое.
Для начала давайте взглянем на правильное содержимое файла .htaccess для MODx Evolution:
AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ http://modx-evo.ru/$1 [R=301,L]
RewriteRule ^(manager|assets)/*$ — [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ — [L]
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
AddDefaultCharset utf-8 – указывает, что по умолчанию кодировку сайта UTF-8.
Инструкции ниже необходимы для склейки домена с www без www. Делается это потому что поисковики воспринимают сайты с www и без как два разных, а значит один из них будет дублировать контент другого, что не хорошо с точки зрения продвижения.
RewriteCond %
Файл ROBOTS.TXT
Хотя это и не являлось темой этого урока, решил всё же разместить здесь содержимое файла robots.txt для MODx Revolution. Файл содержит правила для поисковых роботов.
Этот файл запрещает (разрешает) индексирование-посещение поисковыми роботами файлов из указаных в нём директорий.
Содержимое моего robots.txt:
Как обычно — не стесняйтесь задавать внизу ваши вопросы. Буду рад любым замечаниям и комментариям.
Александр
Мне показалось, что в файле роботс.тхт вместо ассетс/ надо написать коре/. А папку инсталл/ надо вообще удалить. У меня сложности с этим файликом нарисовались. Содержимое:
User-agent: *
Disallow: /manager/
Disallow: /assets/components/
Disallow: /core/
Disallow: /connectors/
Disallow: /index.php
Disallow: /cgi-bin/
А сегодня узнал, что пауки не смогли зайти на сайт. Я где-то ошибся?
Александр
ссылка на новый .htaccess не работает
Viktorminator
Скачал файл htaccess — есть вопросы
1. в файле отсутствует правило RewriteBase / — это нормально?
Options +FollowSymlinks
RewriteEngine On
2.
было так.
RewriteCond %
RewriteCond %
RewriteRule (.*) http://petrov.com/$1 [R=301,L]
а как в новом фале прописать домен petrov.com?
#
# RewriteCond %
# RewriteCond %
# RewriteRule ^ http://corsarrex.com/%1%
#
Viktorminator
RewriteBase / конечно же должен быть.
для petrov.com правило будет
RewriteCond %
RewriteCond %
RewriteRule (.*) http://petrov.com/$1 [R=301,L]
Спасибо Виктор, надеюсь это единственная ошибка в данном файле =)
Возможно стоит сообщить тому человеку о ней =)
мдас. увы с htaccess ничего не вышло, как не крутил внутренняя ошибка сервера. Явно не мой уровень, халява не проскочила =)
Роман Колодяжный
«мдас. увы с htaccess ничего не вышло, как не крутил внутренняя ошибка сервера. Явно не мой уровень, халява не проскочила =)»
закомментируй эту строку — #Options +FollowSymlinks. Уменя на фрихосте только так работает, видимо от настроек сервака зависит..
такой строчки нет и быть не может, уважаемый
Алекс
Спасибо за пример!Успешно настроил зеркала!
Кстати в гугле не обязательно указывать основной домен,если всё правильно настроено в htaccess,то ПС сама определит.
Эдуард
Добрый день. Пытаюсь переименовать файл ht.access в .htaccess, выскакивает ошибка, что нужно ввести имя файла. Без точки впереди, сохраняет , с точкой — нет. Подскажите, как быть в этом случае?
Заранее благодарен.
Эдуард.
Константин
Добрый день
для сайта с www / для сайта без www
а как прописывать если нужно что-бы на сайт переходили по адресу petrov.com, и по www.petrov.com?
Viktorminator
Ничего не прописывайте тогда. Но сайт с www и без них воспринимаются как два разных, а потом гугл видит, что у вас одинаковая информация на двух сайтах и понижает рейтинг.
Алексей
Эдуард для того чтобы переименовать ht.access в .htaccess. Откройте файл ht.access при помощи программы Notepad++, нажмите сохранить как , далее введите .htaccess и сохраните
Константин
Доброго времени суток! Подскажите, а можно ли сделать ЧПУ без расширения .html? Чтобы просто было «resurs.ru/adres».
Спасибо заранее!
Viktorminator
В менеджере System->Content types у html-типа содержимого уберите .html
Алексей
Если директория MODx находится в Имя_домена/public_html/ — какое правило указывать: это-
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
Константин
Виктор, спасибо большое! Отличный ресурс, начал изучать modx (до этого пользовался Drupal’ом), буду пользоваться вашими статьями для изучения!
Viktorminator
«Это». Просто со слешем. Если в директории, тогда /directoryname/
Михаил
Странная ошибка. Установил сайт на хостинг. А кроме главной страницы ничего не отображается, отдает 404 ошибку. Создал несколько страниц — толку 0.
Viktor Minator
Вы, наверное, включили Friendly Url, а ht.access в .htaccess не переименовали.
Здравствуйте. Настраивал чпу на последней версии revo, обнаружил еще один пункт не упомянутый в статье. У меня следующим пунктом после «Использовать дружественные URL» идет friendly_urls_strict с вариантами да и нет. Гугл не признается что это, может вы подскажете? Спасибо.
Slava Beico
Спасибо. Очень помогла ваша статья!
Aleksandr Sergeevich
Скачал файл htaccess (https://github.com/anselmh/modx-boilerplate/blob/master/ht.access) — все сделал как описано — но выдавало 500 ошибку — пока не убрал этот параметр.
Options -MultiViews
Вот интерисует — он нужен или нет??
Руслан Сапижук
У меня такая проблема, включил ЧПУ, настроил все как в инструкции, все работает, но только когда переходит в контейнер документов (site.ru/conteiner/) то при клике на другой пункт меню или снова на контейнер то урл содержит в себе /conteiner/ вот как это выглядит site.ru/conteiner//conteiner/ при повторном клике картина такая site.ru/conteiner//conteiner/ /conteiner/
Кто сталкивался с этой проблемой
Viktor Minator
эту ошибку делает каждый второй. вверху в синем прямоугольнике написал решение
Boris Nizo
Добрый вечер, подскажите, в чем может быть дело, включаю чпу, и перестают создаваться ресурсы, т.е нажимаю создать ресурс- а после сохранения когда нажимаю просмотреть- открывается пустая страница.
Viktor Minator
Ресурс создаётся, но не просматривается, наверное не переименован ht.access -> .htaccess
Boris Nizo
Нет, все переименовал, но всеравно упорно не хочет создаваться ресурс. могу дать доступ, если можно. сайт пустой, начал с настройки чпу, а тут такой прикол. ни в какую((
Viktor Minator
viktorminator skype или через вконтакте бросьте доступы — гляну.
Aleksandr D
Виктор подскажите — может я что-то пропустил, но как боротся со слешем в конце — это же разные получаются страницы. Например
http://ваш_сайт/id — адрес с использованием ID ресурса;
http://ваш_сайт/id/ — адрес с использованием ID ресурса со слешем в конце;
http://ваш_сайт/id.html — адрес с использованием ID ресурса и суффикса;
http://ваш_сай/id.html/ — адрес с использованием ID, суффикса и слеша в конце;
Дмитрий Демченко
Не правильно указан у Вас базовый урл. По крайне мере пока я не поставил — стили не находились.
Дмитрий Демченко
Не правильно указан у Вас базовый урл. По крайне мере пока я не поставил — стили не находились.
Евгений Солдатов
Здравствуйте. Возникла следующая проблема. Я убрал расширение .html, убрал cуффикс контейнера, чтобы мои страницы открывались http://mysite.ru/test
В файле .htaccess прописал
# Remove trailing slash
RewriteRule ^(manager)/*$ – [L] # exclude manager folder
RewriteCond %
RewriteRule ^(.*)/$ http://example.com/$1 [R=301,L]
Чтобы если при вводе http://mysite.ru/test/ был внутренний рерайт на http://mysite.ru/test
Но после этого перестало заходить в админку.
Viktorminator
Там где не нужен слеш — снимайте чекбокс у ресурса Контейнер, .htaccess верните какой был прежде.
Ulkin Igor
Помогите стать капельку умнее:
Как настроить Wayfinder, чтобы он к ресурсам в корневой папке добавлял /. Если добавлять в чанк вывода /, слеш выводится везде кроме корневых ресурсов (см. пример).
(хотя возможно я запутался в чанках)
Пример нерабочего вывода (при просмотре из ресурсса «help/clubcard.html» показывается «/help/contact.html» вместо «/contact.html»):
a href=»/help/clubcard.html» >Клубная карта
a href=»contact.html»>Контакты
Выкрутился добавив &fullLink=`true`. Но может есть иное решение?
сайт: http://test.boboloom.com/
хостинг: мастерхост
Базовый урл прописан и .htaccess — приписан как в примере в начале статьи
Viktorminator
Системная настройка alias_path — No
Monti
У вас в начале статьи написано:
base url=
а правильно
base href=
http://www.w3schools.com/tags/tag_base.asp
Viktor Matushevskyi
Сергей N
Доброго времени суток!
Очень помогла ваша статья.
Виктор, исправьте пожалуйста в синем прямоугольнике в начале статьи
должно быть base href=
а у вас base url=
Viktor Matushevskyi
Александр Быковский
У меня любопытный момент.
Если речь идет о конечной странице то УРЛ выглядит так:
http://site.ru/index/6/some-page (где: 6 — это ID родителя).
А если говорить о родителе, то есть о контейнере, то так:
http://site.ru/index/parent/
Собственное вопрос: откуда берется index и ID родителя и как это дельце убрать?
Alex Penskoni
Тут недавно прочитал такую вещь про robots.txt
Дополнительные директивы следует применять только в записях (секциях) для роботов, поддерживающих данные директивы.
Или по другому:
Не использовать дополнительные директивы в секции для всех роботов.
Т.е. никаких Host: или Crawl-delay: в секции User-agent: *
Вот оригиналы
http://notes.webartsolutions.com/archives/000084
http://robotstxt.org.ru/robotstxterrors#__1.html — Подзаголовок Использование дополнительных директив в секции *
Получается нужно писать host для тех поисковиков, которые это поддерживают?
Viktor Matushevskyi
Давайте так: 2 основных поисковика — это яндекс и гугл. Смотрим что они пишут по этому поводу http://help.yandex.ru/webmaster/controlling-robot/robots-txt.xml и https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt
Используя прочитаное по ссылкам — пишем для них robots.txt
Валерий Константинов
Добрый день. Дополнение Translit установил, файл .htaccess последней версии, но URL-адреса все равно не переводятся на латиницу, они автоматически задаются по-русски. В чем может быть проблема? Какие именно строчки в .htaccess отвечают за перевод на латиницу? Или их там нет и за это отвечает Translit? Благодарю за помощь.
Валерий Константинов
Подскажите, пожалуйста, как решить данную ситуацию?
Viktor Matushevskyi
Выставить в настройках ключ friendly_alias_translit в значение Russian
Валерий Константинов
большое спасибо! Только russian с маленькой буквы.
Антон Щёлкин
Добрый день. Скачал версию modx 2.3.1 и хотел бы настроить ЧПУ, но не могу найти параметр Use Friendly Alias Path. Вместо него есть параметр Использовать вложенные URL. Ключ у этого параметра такой же как и ключ у параметра Use Friendly Alias Path. Подскажите, пожалуйста, это один и тот же параметр, но с разными названиями или эти параметры друг к другу отношения не имеют? Спасибо.
Антон Щёлкин
Алекс Тихонов
Подскажите как решили вопрос, сейчас тоже столкнулся