Меню

настройка htaccess для modx revo

Настройка htaccess для modx revo

Частая ошибка! Для правильного отображения ссылок в head сайта нужно прописать базовый URL примерно вот так:

Настройки сайта для формирования ЧПУ

Заходим в Системные настройки (System settings) и выбираем Friendly URLs в фильтре слева.

Ставим «Нет» в автоматическую генерацию ЧПУ (Automatic alias — No) и «Да» в использовать ЧПУ (friendly_urls — Yes), «Да» в Использовать ЧПУ в путях псевдонимов (use_alias_path — Yes)

Для автоматической генерации псевдонимов (Алиасов) из русского (или другого языка) в псевдоним, состоящих из латинских букв, устанавливаем дополнение Translit http://modx.com/extras/package/translit

Скачиваем из гитхаба последнюю версию .htaccess для MODx Revolution по этой ссылке

Переименовываем в .htaccess данный файл и заливаем на хостинг в корневую папку. Предварительно нужно внести в этот файл некоторые изменения (см. ниже).

.htaccess для MODX Revolution

Что такое .htaccess — говоря по-простому, то это файл, который содержит набор правил переименования запросов (URL) к вашему сайту.

На что стоит обратить внимание в данном файле:

Если ваша MODx директория находится в public_html, то правило.

Оставляем без изменения, если используете поддиректорию subdirectory, то правило будет выглядеть так.

Ваш сайт может иметь только одно имя www.sitename.com или sitename.com без www. Так как поисковые системы воспринимают данные два сайта как абсолютно разные. Поэтому необходимо определится с основным доменном и ввести в .htaccess правило для него:

Не используйте эти два правила одновременно!

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

Непосредственно само правило перезаписи URL в ЧПУ содержится в следующих строчках.

  • Далее в файле .htaccess взятом с гитхаба (см. ссылку выше) идут дополнительные настройки-правила (для файлов разных типов, сроков изменения и т.д.), особенности использования которых можете узнать по ссылкам в комментариях. Я использую этот файл как есть, без дальнейших изменений.
  • Использование кеша браузера

    Чтобы браузер сохранял уже загружаемые ресурсы (JS, изображения, вебшрифты) нужно в htaccess файле указать время хранения этих файлов. Вставьте в ваш .htaccess следующий код:

    Файл ROBOTS.TXT

    Хотя это и не являлось темой этого урока, решил всё же разместить здесь содержимое файла robots.txt для MODx Revolution. Файл содержит правила для поисковых роботов.

    Этот файл запрещает (разрешает) индексирование-посещение поисковыми роботами файлов из указаных в нём директорий.

    источник

    Файл 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 % !^petrov.com\.com [NC]
    RewriteRule (.*) http://petrov.com/$1 [R=301,L]

    а как в новом фале прописать домен petrov.com?
    #
    # RewriteCond % !=on
    # RewriteCond % ^www\.(.+)$ [NC]
    # RewriteRule ^ http://corsarrex.com/%1% [R=301,L]
    #

    Viktorminator

    RewriteBase / конечно же должен быть.
    для petrov.com правило будет
    RewriteCond % .
    RewriteCond % !^petrov\.com [NC]
    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.

    Читайте также:  настройка gps на андроиде asus
    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 верните какой был прежде.

    Читайте также:  инженерные настройки philips w832
    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. Подскажите, пожалуйста, это один и тот же параметр, но с разными названиями или эти параметры друг к другу отношения не имеют? Спасибо.

    Антон Щёлкин
    Алекс Тихонов

    Подскажите как решили вопрос, сейчас тоже столкнулся

    источник