Modx url: modX.makeUrl — Справочник | MODX документация

Содержание

Как настроить дружественные URL на MODX Revolution

Добрый день, друзья!

Продолжаем реалити-шоу «Построй свой дом сайт на MODX Revolition».

Краткое содержание предыдущих серий:

Переходим к настройке дружественных URL или ЧПУ (кому как больше нравится).

Чтобы вам были понятны все термины, посмотрите на картинку, где я показала, что такое псевдоним ресурса, и что такое суффикс.

Это пример ссылки на внутреннюю страницу, она состоит из домена, псевдонима страницы и суффикса.

Такие лаконичные  URL могут быть и у вашего сайта. Сейчас я расскажу, как это сделать.

Как настроить дружественные URL на MODX Revolution

Прежде всего нам нужно зайти в корневую папку сайта на сервере и переименовать файл ht.access в .htaccess

Заходим в админ. панель – вашдомен/manager

В верхнем меню выбираем Система → Настройка системы

При помощи фильтра находим раздел «Дружественные URL»

Всего в этом разделе 17 настроек. Вы можете посмотреть, какие параметры я обычно выставляю для своих сайтов. После чего я подробнее расскажу какие настройки нужно менять и для чего.

Автоматически генирировать псевдоним Установите «Да», если не хотите каждый раз, добавляя новый ресурс писать его псевдоним вручную.

Суффикс контейнера. Контейнер в MODX — это любой документ, имеющий дочерние ресурсы. Вы можете установить для него суффикс (например, html) или оставить этот пункт без изменений. Тогда ссылка на разделы вашего сайта будет заканчиваться не суффиксом, а слэшем.

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

Транслитерация псевдонимов Чтобы псевдонимы автоматически переводились из кириллицы в латинские буквы, требуется дополнение translit. Я говорила об этом в прошлой статье. После установки дополнения пишем в этом поле «russian».

Использовать дружественные URL Конечно «Да»!

Использовать вложенные URL. Если оставить «Да», то ссылки на страницы будут выглядеть так:

Домен/псевдоним-родителя/псевдоним-ресурса.html

Мне не очень нравится такой вариант, поэтому я не использую вложенные URL. И ссылки на внутренние страницы выглядят так:

Домен/псевдоним-ресурса.html

Это не только красиво, но и удобно. Если вам захочется, например, перенести статью из одной рубрики в другую, URL останется прежним. Не нужно будет настраивать редирект.

Впрочем, все это дело вкуса. Хотя, есть мнение, что поисковики любят лаконичные URL.

А на сегодня все. Если остались вопросы, вы можете задать их в комментариях.

MODX Revo — Ввод названия сайта и настройка ЧПУ

Второй урок по созданию блога на MODX Revolution. На этом уроке мы введём название для сайта и научимся настраивать ЧПУ в CMS MODX Revolution.

Ввод названия сайта

Ввод названия сайта производится в окне «Настройка системы». Чтобы в неё зайти необходимо нажать на значок «Шестерёнки» и выбрать в открывшемся меню пункт «Настройка системы».

Так как MODX содержит большое количество настроек, то рекомендую пользоваться фильтрами для отбора нужных параметров (например, параметр «Название сайта» находится в разделе «Сайт»). После выбора фильтра «Сайт» переходим к изменению параметра «Название сайта», для этого необходимо в соответствующем поле ввести нужное название (например: «Мой блог»).

Примечание: Сохранять или подтверждать изменения параметров системы в MODX Revolution не требуется.

Настройка ЧПУ для сайта

Но перед тем как переходить к настройке ЧПУ, давайте разберёмся что означает этот термин.

Понятие ЧПУ

ЧПУ – это понятный для человека веб-адрес страницы сайта, т.е. тот который Вы видите в адресной строке браузера.

Например, адрес веб-страницы на MODX без ЧПУ выглядит следующим образом:
http://mysite.ru/index.php?id=2

Этот адрес содержит страницу (ресурс), которая имеет идентификатор 2 во внутренней структуре CMS MODX Revolution. Такая запись не является понятным пользователю, да и поисковым машинам Google и Yandex она не очень понятна, что в итоге может привести к более низким позициям при выдаче сайта в этих системах.

Совсем другое дело, когда адрес веб-страницы выводится с помощью ЧПУ, такой адрес отражает понятную для человека иерархию данных на сервере, например:
http://mysite.ru/articles/bootstrap-3/labels-and-icons

Данный адрес отображает страницу «labels-and-icons», которая находится в контейнере «bootstrap-3», а он, в свою очередь, содержится в контейнере «articles».

Настройка файла .htaccess для ЧПУ

Настройка веб-сервера для работы с ЧПУ осуществляется посредством конфигурационного файла .htaccess:

  1. Переименовываем файл ht.access в .htaccess.
  2. Открываем файл .(.*)$ index.php?q=$1 [L,QSA]Эти строчки обеспечивают интерпретацию адресов index.php?q=idРесурса в ЧПУ на сервере.
    Для работы вышеприведённых преобразований в файле .htaccess должна быть включена (до вышеприведённых строчек) директива RewriteEngine.
    RewriteEngine on
  3. Кроме этого сразу же можно настроить ещё одно преобразование, которое будет выполнять редирект с www.домен на домен или обратно (с домен на www.домен). Это осуществляется в зависимости от того, какое имя имеет ваш сайт, а именно с www или без www.
  4. Изменяем строчку example-domain-please-change на имя домена, в нашем случае на mysite. А строку com на ru. Так же не забываем убрать знак #, чтобы раскомментировать данные строки. После выполнения вышеперечисленных действий эти строки должны выглядеть следующим образом:
  5. Сохраняем изменения в файле.

Настройка параметров системы MODX Revolution для ЧПУ

Для настройки ЧПУ в CMS MODX Revolution необходимо перейти в раздел "Настройка системы" и в поле "Фильтр по разделу..." выбрать из списка пункт "Дружественные URL".

В открывшейся таблице необходимо изменить значения следующих параметров:

  1. Использовать дружественные URL -> Да.
  2. Проверять на дублирование URI во всех контекстах -> Да.
  3. Использовать вложенные URL -> Да. Данный параметр рекомендую использовать, т.к. в этом случае в URL адрес будут включаться названия всех контейнеров на пути к выводимому ресурсу, что будет более наглядно и для веб-разработчика и для посетителей сайта. Также при использовании данного параметра необходимо применять либо полные пути к файлам (изображения, css, javascript и т.д.), либо использовать тег <base /> (<base href="[[++site_url]]" />) в заголовке веб-страницы.
  4. Строгий режим дружественных URL -> Да. Данный параметр тоже рекомендую использовать, т.к. это исключит дублирование контейнеров (например: mysite.ru/article/ и mysite.ru/article).
  5. Автоматически генерировать псевдонимы ->Да. Данному параметру необходимо установить значение «Да», если вы не хотите вручную вводить alias для ресурсов, которые вы будете создавать.

    Примечание: Для автоматической транслитерации псевдонимов необходимо установить пакет "yTranslit" или "translit".
  6. Транслитерация псевдонимов -> russian. Данный параметр установите в russian, если на сайте Вы хотите использовать транслитерацию для псевдонимов ресурсов (например: mysite.ru/статьи/ -> mysite/articles).

В итоге для настройки ЧПУ в CMS MODX Revolution мы выполнили следующие действия:

Не работают вложенные URL / Русскоязычное сообщество MODX

Доброго времени суток! Проблема в том что не отображаются вложенные url.(.*)$ 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.

# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# кеш браузера
<ifModule mod_expires.c>
ExpiresActive On

ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary

# Включаем кэширование css, javascript и текстовых файлоф на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"

</ifModule>

В MODX Revo линзы и nbsp;: сайты обновления базы URL?

Я разработал сайт для клиента еще до того, как было выбрано доменное имя. В результате URLs для страниц сайта выглядит следующим образом:

http://host.mynost.net/~tempname/index.php?id=8

Доменное имя теперь куплено, но если я нажимаю на какие-либо ссылки Wayfinder, он все равно использует старый путь, как указано выше, а не, скажем,:

http://domainname.com/index.php?id=8

Я предполагаю, что это настроено в файле config.inc.php, но я не уверен, что нужно изменить.

Может ли кто-нибудь указать мне правильное направление? Спасибо!

url

configuration

content-management-system

modx

modx-revolution

Поделиться

Источник


MeltingDog    

22 февраля 2013 в 02:38

4 ответа


  • дружественные URL-адреса modx revo

    Только начал использовать MODX Revo. Когда я делаю новый документ в MODX (Revo), заполняю его псевдоним (например, ‘ TESTALIAS ‘) и пытаюсь получить mydomain/TESTALIAS, я получаю ошибку 404 . Используя nginx и php-fpm, FURLs — это ON в .htaccess Так что же я делаю не так? Большое спасибо

  • в MODX Revo линзы и nbsp;: указатели не Сортировать по menuindex

    По умолчанию плагин wayfinder в modx revo должен сортировать по menuindex. Это, кажется, не работает. У меня есть следующее: [[!Wayfinder? &startId=`2` &level=`1` &ignoreHidden=`TRUE` &outerClass=`news` &sortBy=`menuindex` &sortOrder=`DESC`]] Я подозреваю, что это какая-то…



6

Вам нужно изменить $modx_base_url= '/' в /core/config/config.inc.php , а если этого недостаточно — вручную очистить папку /core/cache/ .

Поделиться


Vasis    

22 февраля 2013 в 05:19



3

Четыре года спустя я столкнулся с тем же самым в течение нескольких месяцев и был невероятно разочарован.

Обновленным ответом на этот вопрос будет переход к Settings (icon) > Context , а затем выбор Key > web (right click) > Update Context > Context Settings .

Изменение http_host (например, localhost ) и site_url (например, http://localhost/ ).

Теперь из верхнего меню Manage > Clear Cache , а также Manage > Clear Cache > Refresh URIs .

Это было все равно что найти горшок с золотом.

Поделиться


Steven Ventimiglia    

15 июля 2017 в 00:36



1

У меня есть веб-сайт на какой-то супер-старой версии Modx, которую мне нужно было временно настроить для просмотра, и я столкнулся с этой проблемой.

То, как я изменил базу URL, находится в базе данных:

таблица: modx_context_setting

ключ: site_url

Поделиться


GTCrais    

22 января 2018 в 14:20



0

Это описывает, как переместить modx в новое место ~ что, по сути, вы и сделали.

http://rtfm.modx.com/display/revolution20/Перемещение+Вашего+Сайта+на+Новый+Сервер

в общем, вы можете обойтись без обновления config.inc.php &, очистив кэш, но неплохо бы просмотреть таблицу системных настроек в бд в поисках старых путей, некоторые пакеты действительно хранят там информацию о пути.

Поделиться


Sean Kimball    

22 февраля 2013 в 15:38


Похожие вопросы:

Правая сторона админ-панели исчезает после обновления my MODx Revo 2.2.15-pl до MODx Revo 2.3.0-pl

Я столкнулся со странной ошибкой или проблемой после обновления моего MODx Revo 2.2.15-pl до MODx Revo 2.3.0-pl В правой части админ-панели просто исчез после обновление сайт MODX Рево Однако если я…

В MODX Revo Линзы И Nbsp;: Переезд Сервера, Ошибки PHP Везде

Я пытаюсь переместить свой сайт Revo в подкаталог на другом сервере. Проблема, которая у меня есть, и у меня никогда не было этой проблемы при переходе к корню домена, заключается в том, что многие…

В MODX Revo линзы и nbsp;: дружелюбный URLs не работает

Это, кажется, распространенная проблема, но я перепробовал все предложения, и ни одно из них не сработало. Проблема в том, что когда я включаю Friendly URLs в ModX Revo, все мои ссылки ломаются…

дружественные URL-адреса modx revo

Только начал использовать MODX Revo. Когда я делаю новый документ в MODX (Revo), заполняю его псевдоним (например, ‘ TESTALIAS ‘) и пытаюсь получить mydomain/TESTALIAS, я получаю ошибку 404 ….

в MODX Revo линзы и nbsp;: указатели не Сортировать по menuindex

По умолчанию плагин wayfinder в modx revo должен сортировать по menuindex. Это, кажется, не работает. У меня есть следующее: [[!Wayfinder? &startId=`2` &level=`1` &ignoreHidden=`TRUE`…

В MODX Revo Линзы И Nbsp;: Запрашивать Несколько TVs?

Я перемещаю сайт в ModX Revolution и не имею никакого опыта работы с xPDO. На сайте, который я перемещаю, есть функция поиска, которая просматривает несколько TVs, назначенных некоторым ресурсам, и…

В MODX Revo линзы и nbsp;: база данных карту

Кто-нибудь знает, где я смогу найти ‘map’ из базы данных ModX Revo? IE: отношения между таблицами? Я погуглил, поискал документацию SO и Modx и ничего не нашел! Спасибо — любая помощь приветствуется

дублирование установки modx revo

Я хотел бы внести некоторые изменения в установку modx revo через промежуточный поддомен с отдельной базой данных. Какой самый простой способ сделать это? Я борюсь с этим уже два дня. Сейчас я…

Не удается пройти мимо экрана входа в систему в Modx Revo 2.7.0pl

Моя проблема: пользователи не получают дальше от экрана входа в систему. Они появляются как вошедшие в систему в журнале менеджера и Whos online, но экран входа в систему просто показывает пустую…

подключите приложение на Django к существующему веб-сайту modx revo

можно ли подключить приложение, написанное на Django, к существующему веб-сайту MODX Revo? Приложение Django должно использовать данные из базы данных MODX Revo, возможно ли это?

Создание пользовательских URL MODX

Дополнение CustomUrls

Это дополнение для определения пользовательских псевдонимов или URI паттернов для ваших ресурсов. Он поддерживает дополнения translit и Redirector.

Вы можете построить ваши паттерны из полей ресурса, ТВ, сниппетов и фильтров вывода и установить некоторые условия так же, как и с пользовательскими формами.

Например, с CustomURLs вы можете добавлять ID ресурса или месяц публикации в алиасы всех ресурсов или просто для одного, чей родитель = 1 или шаблон = 1.

Требования

  • MODx Revolution 2.2.x или выше
  • PHP5 или выше

Загрузка

Дополнение может быть загружено из менеджера MODX Revolution через Управление дополнениями или из MODX репозитория дополнений

Поддержка, комментарии, разработка и заявки на исправление ошибок

Github : https://github.com/omycode/customurls
Поддержка/Комментарии : http://forums.modx.com/thread/78843/support-comments-for-customurls

Использование

Для начала работы с CustomUrls, перейдите в Компоненты (Components) > Custom URLs и добавьте правило

Свойства правил









Имя Описание Пример
Шаблон   Ваш пользовательский URL паттерн построен из текста, полей ресурсов, ТВ, сниппетов и фильтров вывода. Вы также можете использоватьcu.parent заполнитель для получения полного пути родительского ресурса. [[+id]]-[[+alias]]
Поле ограничений Может быть полем ресурса: ИД (id), родитель (parent), шаблон (template) … Шаблон
Ограничительное значение  2
Группа пользователя Группа пользователя для которой действует правило Администраторы
URI По-умолчанию, создаются псевдонимы, но вы можете вместо этого выбрать создание URI false
Перезапись Перезапись псевдонима или URI при создании ресурса. true
Активный Правиль активное ? true

Примеры использования

Простой текст :

simple-text

MODX псевдоним по-умолчанию :

[[+alias]]

Поля ресурса :

[[+id]]-[[+alias]]

TВ :

[[+tv.mytv]]-[[+id]]

Сниппеты :

[[MySnippet? &id=`[[+id]]`]]

Фильтры вывода :

[[+publishedon:strtotime:date=`%Y-%m-%d`]]/[[+id]]-[[+alias]]

MODx URI по-умолчанию : 

[[+cu.parent_uri]]/[[+alias]]

Более сложные URI

[[+cu.parent_uri]]/some-text/[[getResourceField? &id=`[[+parent]]`]]/[[+id]]-[[+alias]]

Второй способ создания пользовательских URL

Устанавливаем пакет translit, включаем ЧПУ, выставлям ключ ‘automatic_alias’ (Автоматическая генерация псевдонима) в ‘Да’, ключ ‘friendly_alias_translit’ (Транслитерация псевдонимов) в ‘russian’ для того, чтобы иметь возможность поле алиаса в форме создания/редактирования ресурса оставлять пустым.

Создаём плагин:

Указываем событие для плагина: ‘OnDocFormSave’

19-09-2012
SEO FURL ЧПУ


Виктор Матушевский

Please enable JavaScript to view the comments powered by Disqus.

Модуль для приема оплаты для MODX Revolution

Инструкция по настройке счета

1. Зарегистрируйтесь в платёжной системе PayAnyWay и заполните все необходимые данные. Дождитесь проверки аккаунта и создайте расширенный счет.

2. Заполните настройки расширенного счета (раздел «Мой счет» — «Управление счетами» -«Редактировать счет»):

  • «Тестовый режим»: Нет
  • «Check URL»: заполнять не нужно
  • «Pay URL»: http://имя_вашего_сайта/index.php?id=ID_станицы (ID_страницы — номер страницы подтверждения оплаты (п. 2 инструкции
    по установке модуля))
  • «HTTP метод»: POST
  • «Можно переопределять настройки в url»: Да
  • «Подпись формы оплаты обязательна»: Да
  • «Код проверки целостности данных»: ваш_код (произвольный набор символов)
  • «Success URL»: заполнять не нужно (настраивается в модуле)
  • «Fail URL»: заполнять не нужно (настраивается в модуле)
  • «InProgress URL»: Необязательное поле. URL страницы магазина, куда должен попасть покупатель после успешного запроса на авторизацию
    средств, до подтверждения списания и зачисления средств. Поддерживается ограниченным количеством методов оплаты. Переход пользователя
    произойдет независимо от получения магазином средств и отчета о проведенной оплате.
  • «Return URL»: Необязательное поле. URL страницы магазина, куда должен вернуться покупатель при добровольном отказе от оплаты.
    Отчет об оплате в этом случае магазину не отсылается.

Внимание! Для кириллического домена PayURL должен быть указан в кодировке Punycode.

Инструкция по установке модуля

1. Для установки платежного модуля PayAnyWay необходимо произвести следующие действия:

  • Скачайте архив модуля и распакуйте его. Загрузите архив payanyway-*.transport.zip в папку core/packages/ вашего сайта.
  • В панели управления перейдите «Система» — «Управление пакетами» — «Добавить новый пакет» — «Искать пакеты локально» — «Дальше».
  • В таблице пакетов появится пакет «payanyway». Нажмите кнопку «Установить».
  • Завершите установку.

2. Необходимо создать 4 страницы:

  • страница оплаты через PayAnyWay. Вставить в поле «Содержимое ресурса» вызов сниппета:
  • [[!Payanyway? action=`payment`]]

  • страница с сообщением об успешной оплате (с любым содержанием)
  • страница с сообщением об отмене оплаты. Вставить в поле «Содержимое ресурса» вызов сниппета:
  • [[!Payanyway? action=`fail`]]

  • страница для подтверждения оплаты. Вставить в поле «Содержимое ресурса» вызов сниппета:
  • [[!Payanyway? action=`callback`]]

3. Измените параметры сниппета Payanyway:

  • MNT_SERVER — возможны два варианта:
    • demo.moneta.ru (для тестового аккаунта на demo.moneta.ru)
    • www.payanyway.ru (для рабочего аккаунта в платежной системе PayAnyWay)
  • MNT_ID – номер расширенного счета в платежной системе PayAnyWay (Moneta.ru)
  • MNT_CURRENCY_CODE — код валюты вашего счета (‘RUB’)
  • MNT_DATAINTEGRITY_CODE — Код проверки целостности данных, указанный в настройках расширенного счета.
  • MNT_TEST_MODE – 0. Если прописать 1, включается тестовый режим и денежные средства со счета не снимаются.
  • MNT_SUCCESS_URL — http://имя_вашего_сайта/index.php?id=ID_страницы
    • ID_страницы — страница с сообщением об успешной оплате
  • MNT_FAIL_URL — http://имя_вашего_сайта/index.php?id=ID_страницы
    • ID_страницы — страница с сообщением об отмене оплаты
  • PAYMENT_FORM — http://имя_вашего_сайта/index.php?id=ID_страницы
    • ID_страницы — страница с формой оплаты PayAnyWay

4. В шаблоне формы оформления заказа должен быть выпадающий список (select) для выбора метода оплаты. Пример:

    <select name="payment">
<option value="При получении" [[!+fi.payment:FormItIsSelected=`При получении`]]>При получении</option>
<option value="WebMoney" [[!+fi.payment:FormItIsSelected=`WebMoney`]]>WebMoney</option>
</select>

Добавьте строку ‘<option value=»payanyway»>PayAnyWay</option>’. Должно выглядеть, например, так:

    <select name="payment">
<option value="payanyway" [[!+fi.payment:FormItIsSelected=`payanyway`]]>PayAnyWay</option>
<option value="При получении" [[!+fi.payment:FormItIsSelected=`При получении`]]>При получении</option>
<option value="WebMoney" [[!+fi.payment:FormItIsSelected=`WebMoney`]]>WebMoney</option>
</select>

На странице формы оформления заказа в вызове сниппета FormIt в список используемых хуков необходимо добавить payanyway перед
redirect.

Теперь после отправки заказа на следующей странице будет появляться кнопка «Оплатить сейчас».

5. Для фискализации чеков по 54-ФЗ настройте вашу кассу в сервисе https://kassa.payanyway.ru, в настройках Вашего расширенного счёта в Монета.ру установите Pay URL: https://kassa.payanyway.ru/index.php?do=invoicepayurl,
а в настройках кассы в kassa.payanyway.ru пропишите ссылку на Pay URL Вашего интернет-магазина. В этом случае будет пробиваться
чек по 54-ФЗ через сервис kassa.payanyway.ru, а запрос на Pay URL магазина будет проходить транзитом через сервис kassa.payanyway.ru.

Удачных платежей.

Ссылки:

Официальный сайт MODX Revolution
Официальный сайт Shopkeeper
Модуль PayAnyWay для MODX Revolution Shopkeeper

.htaccess — ModX Revo: дружественные URL-адреса не работают

Кажется, это обычная проблема, но я пробовал все предложения, и ни один из них не работал.

Проблема в том, что когда я включаю Friendly URLs в ModX Revo, все мои ссылки не работают (404). URL-адреса отображаются правильно с псевдонимом после них.

Вот что я пробовал:

  • Изменение ht.access на .htaccess
  • Убедитесь, что правильный путь присутствует в MODX_BASE_PATH в confic.inc.php файл
  • Убедитесь, что все настройки FURL в системных настройках в порядке и верны
  • Очистка кешей браузера и ModX

Если кто-то может предложить что-то, что я пропустил, это было бы здорово! Спасибо

0

MeltingDog

19 Сен 2012 в 05:56

3 ответа

Лучший ответ

Хорошо, я установил для псевдонима FURL в нижнем регистре значение «Нет» в системных настройках ModX, и теперь он работает … Не знаю почему, но вот он у вас …

Возможно, это связано с тем, что я указал псевдоним ресурсов до того, как включил FURL, и поэтому они фактически не преобразовывали их в нижний регистр.

1

MeltingDog
23 Сен 2012 в 23:12

Нужна дополнительная информация:

Вы разрабатываете локально (WAMP, MAMP ..)? Если вы уверены, что у вас включен mod_rewire в настройках apache. Если нет, убедитесь, что он включен на вашем хосте.

Вы вводите URL-адреса в браузере вручную (без путеводителя)? (www.yoursite.com/somepage)

1

Jose Browne
19 Сен 2012 в 13:00

Я понимаю, что это старый вопрос, но я просто установил REVO сегодня вечером, и у меня возникли проблемы с FURL, возвращающими ошибку 404 после того, как я включил все настройки. Чего я НЕ сделал, так это переименовать htaccess. Как только я переименовал его в .htaccess, все в порядке. Глупая ошибка, сделанная из-за недостатка сна, но я подумал, что должен опубликовать ее в надежде сэкономить кому-то потерянное время.

1

RyGuy
4 Дек 2014 в 02:16

Использование понятных URL-адресов — начало работы

Вы можете полностью настроить удобные URL-адреса менее чем за две минуты, выполнив простой четырехэтапный процесс.

1) Рабочий

.htaccess образец¶

MODX предоставляет файл ht.access , который вы можете редактировать в соответствии с настройками вашего сервера. Он расположен в корне сайта MODX. Этот файл будет игнорироваться сервером, пока вы не переименуете его или (лучше) не скопируете его в файл с именем .htaccess . Когда браузер запрашивает страницу, сервер проверяет наличие файла с именем .htaccess , который может содержать информацию о том, как следует обрабатывать различные URL-адреса.

Файл .htaccess может находиться где угодно над установкой MODX, но обычно он находится в корне сайта MODX (вместе с файлом ht.access и активами , manager и коннекторами каталогов как показано на изображении ниже). Для большинства установок вам не нужно вообще вносить какие-либо изменения в файл, чтобы FURL работали.Вы должны внести одно изменение, но сначала сделайте так, чтобы FURL работали, и мы рассмотрим это изменение в конце этой страницы.

Вот файл ht.access , который поставляется с одной версией MODX (ваша версия может немного отличаться).

  # MODX поддерживает дружественные URL-адреса через этот файл .htaccess. Вы должны обслуживать Интернет
# страницы через Apache с mod_rewrite, чтобы использовать эту функцию, и вы должны
# изменить имя файла с ht.access на .htaccess.
#
# Убедитесь, что RewriteBase указывает на каталог, в который вы установили MODX.(. *) $ index.php? q = $ 1 [L, QSA]


# Для серверов, поддерживающих сжатие вывода, вам следует подобрать немного
# скорость, не комментируя следующие строки.

#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
  

Вы также можете поместить файл в / htdocs или / public_html или в любое другое место, которое использует ваш сервер, если он находится в корневом каталоге MODX или выше.

Имейте в виду, что некоторые хосты любят писать свои собственные .htaccess чуть выше уровня сайта, но если ваш .htaccess находится в корне сайта MODX, он должен работать нормально. Если ваш хост разместил файл .htaccess в корне сайта MODX, вам может потребоваться вставить код из файла MODX ht.access под кодом хоста в этом файле. Обязательно сначала сделайте резервную копию файла хоста! Так вы сможете восстановить его, если что-то пойдет не так.

Строка RewriteBase должна заканчиваться символом «/» для корневых установок.

RewriteBase для установки подкаталога может потребоваться ввести как: RewriteBase / subdirectoryName / , хотя обычно это необходимо только при установке на локальном хосте.Строка RewriteBase почти всегда должна заканчиваться косой чертой.

2) Настроить MODX Revolution¶

Затем измените настройки в области дружественных URL-адресов системных настроек MODX (см. Следующее изображение). В MODX 2.3 щелкните значок шестеренки в правом верхнем углу и выберите «Системные настройки». В более ранних версиях перейдите в Система -> Системные настройки . В поле «Поиск по ключу» в правом верхнем углу сетки введите «дружественный» (без кавычек) и нажмите «Ввод».Это отобразит все настройки дружественного URL. Главный из них, который вам нужен, находится внизу: Используйте дружественные URL-адреса ( friendly_urls ). Дважды щелкните «Нет» и измените его на «Да».

Если вы не видите все настройки MODX FURL, просто измените «Area» (второй раскрывающийся список) в верхней части сетки на «Friendly URL», как это сделал я.

Вы не найдете настройки friendly_url_prefix и friendly_url_suffix среди настроек на изображении ниже — они устарели в пользу расширений, определенных типами контента и container_suffix (для ресурсов контейнера с типами контента, имеющими mime_type из ‘text / html’) .Параметр суффикса контейнера по умолчанию теперь «/», что приводит к URL-адресам ресурсов контейнера вместо типа содержимого контейнера (другими словами, URL-адреса ресурсов, отмеченных как контейнеры, будут / вместо чего-то вроде ‘.html’) . Если вы хотите, чтобы ресурсы вашего контейнера отображались как их тип содержимого (например, ‘.html’), удалите «/» из этого параметра. Если у вас есть проблемы с пакетами, которые используют суффикс контейнера для FURLS (например, Статьи), верните этот параметр в «/».

Параметр «Использовать удобный псевдоним путь» (use_alias_path) позволяет сайту отображать структуры каталогов.Если для него установлено значение «Нет», все документы на сайте будут отображаться в URL-адресах, как если бы они находились непосредственно за пределами корневого каталога, без учета путей. Если для параметра установлено значение «Да» (по умолчанию), вы увидите полный путь к текущей странице в URL-адресах.

Параметр friendly_alias_urls был удален в MODX 2.1+. Включение friendly_urls означает, что вы используете friendly_alias_urls в версии 2.1+, и этот параметр больше не является полезным или необходимым.

3) Отредактируйте ваши шаблоны ¶

Убедитесь, что у вас есть следующий тег в разделе заголовков всех ваших шаблонов.Если у вас только один интерфейсный контекст (например, «Интернет»), вы обычно можете опустить восклицательный знак, чтобы повысить скорость загрузки страницы:

  
  

4) Очистить кеш сайта¶

И готово!

Самый простой способ воспользоваться преимуществами использования полностью квалифицированных дружественных URL-адресов — это позволить MODX создавать ссылки с помощью тегов ссылок, описанных на этой странице: синтаксис тегов ссылок для создания ссылок на различные ресурсы прост, как привязка в теге ссылки ниже (где 1 — это идентификатор ресурса страницы, на которую вы хотите создать ссылку).Это дает дополнительное преимущество, заключающееся в возможности перемещать ресурсы по веб-проекту без необходимости исправлять кучу неработающих ссылок, поскольку MODX просто автоматически обновляет ссылки, созданные таким образом.

   Некоторая страница 
  

5) Преобразование URL-адресов WWW в не-WWW или наоборот¶

Ранее мы упоминали об одном изменении, которое вы всегда должны вносить в файл .htaccess, если у вас работают FURL. Это касается URL-адресов, которые начинаются с www (или нет).Пользователь может перейти на большинство сайтов с доменным именем или доменным именем, которому предшествует www. Вы всегда должны преобразовывать URL-адрес в тот или иной. Причины сложны, но если вы этого не сделаете, на вашем сайте могут произойти странные вещи. Например, пользователи, вошедшие в систему, могут внезапно потерять этот статус.

Исправить это очень просто. В приведенном выше коде файла .htaccess вы увидите два раздела, оба закомментированы. Один меняет URL-адреса без www на URL-адреса с www, другой делает наоборот.yoursite \ .com [NC]
RewriteRule (. *) Http://yoursite.com/$1 [R = 301, L]

Обратите внимание, что мы не раскомментировали первую строку. Это настоящий комментарий. Раскомментирование заставит сервер рассматривать его как код, и это может привести к сбою сервера.

Серверы

могут быть весьма щепетильны по поводу того, что находится в файле .htaccess . Всегда делайте резервную копию рабочего файла .htaccess перед его изменением. Таким образом, если ваша работа приведет к сбою сервера, вы можете просто скопировать сохраненную версию обратно на .(. *) index \. (php | html | htm) $ 1 [R = 301, L]

modx friendly urls nginx FPM php5.3 — дружественные url не работают

Я использую php5.3 на nginx 0.8.53 с FPM на Modx Revolution.

Я пытаюсь заставить работать «дружественный URL», но все, что я получаю, это 404.
В конфигурации modx дружественный URL установлен на да, дружественные псевдонимы установлен на нет (поэтому он отбрасывает суффикс)

Мой файл конфигурации:

  сервер {
    слушать 80;
    имя_сервера .mydomain.. + \. (jpg | jpeg | gif | css | png | js | ico) $ {
        корень / дом / mylogin / htdocs;
        access_log off;
        истекает 30 дней;
        ломать;
    }
}
  

Fast CGI modx-файл:

  fastcgi_connect_timeout 60;
fastcgi_send_timeout 300;
fastcgi_buffers 4 32к;
fastcgi_busy_buffers_size 32 КБ;
fastcgi_temp_file_write_size 32 КБ;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_ignore_client_abort on;
fastcgi_intercept_errors on;
fastcgi_read_timeout 300;
fastcgi_param QUERY_STRING $ query_string;
fastcgi_param REQUEST_METHOD $ request_method;
fastcgi_param CONTENT_TYPE $ content_type;
fastcgi_param CONTENT_LENGTH $ content_length;
fastcgi_param SCRIPT_NAME $ fastcgi_script_name;
fastcgi_param REQUEST_URI $ request_uri;
fastcgi_param DOCUMENT_URI $ document_uri;
fastcgi_param DOCUMENT_ROOT $ document_root;
fastcgi_param SERVER_PROTOCOL $ server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI / 1.1;
fastcgi_param SERVER_SOFTWARE nginx / $ nginx_version;
fastcgi_param REMOTE_ADDR $ remote_addr;
fastcgi_param REMOTE_PORT $ remote_port;
fastcgi_param SERVER_ADDR $ server_addr;
fastcgi_param SERVER_PORT $ server_port;
fastcgi_param SERVER_NAME $ имя_сервера;
fastcgi_param REDIRECT_STATUS 200;
  

Дизайн веб-сайта — Веб-дизайн и услуги

Плагины

Шаблоны

В интерфейсе менеджера MODx перейдите в раздел Ресурсы> Управление ресурсами> Шаблоны, чтобы создать или изменить шаблоны.

Каждая страница использует шаблон. Шаблоны содержат обычную разметку HTML, а также заполнители для переменных. Например, часто используется поле pagetitle в MODx для элемента в шаблоне. В шаблоне эта строка будет выглядеть так:</p><pre> <title> [* pagetitle *]

Длинный заголовок часто используется для первого заголовка над страницей содержимого , например:

 

[* longtitle *]

[*содержание*]

Другие полезные переменные страницы включают id , псевдоним , описание и menuindex (который позволяет сортировать страницы в любом порядке).Вы можете использовать эти поля как угодно в шаблоне.

Примечание. При разработке шаблонов в MODx обычно лучше всего определять базовый URL-адрес в шаблона следующим образом:

  

Имея базовый URL-адрес, вам нужно будет определить свои ссылки относительно этого URL-адреса. Например, с указанным выше базовым URL-адресом эта ссылка

  Моя страница  

будет указывать на этот веб-адрес:

 http: // www.law.gmu.edu/org/mypage 

НО большинство ссылок должно быть создано с использованием идентификатора документа (например, Переменные шаблона

В интерфейсе менеджера MODx перейдите в раздел Ресурсы> Управление ресурсами> Переменные шаблона, чтобы создать или изменить переменные шаблона.

Когда вы используете шаблонные переменные, вы превращаете свои страницы MODx в базу данных объектов данных, которые вы можете запрашивать и манипулировать для отображения практически неограниченным количеством способов.Например, вы можете создать переменную шаблона с именем «fname» для хранения имени человека и «lname» для хранения фамилии человека. Вы можете создать переменные шаблона для электронной почты, телефона, адреса и всего остального, что вам нужно для хранения в базе данных. Данные можно вводить как ввод текста, или из раскрывающегося списка предопределенных параметров, или переключателей, или флажков, или полей текстового поля, или ряда других параметров. Вы определяете тип данных и параметры при создании переменной шаблона.

Чтобы использовать эти данные, вы можете использовать «фрагменты» кода PHP. Вы можете создавать свои собственные сниппеты или использовать сниппеты, включенные в MODx. Фрагмент Ditto особенно полезен для работы с шаблонными переменными.

Дополнительную информацию о переменных шаблона см. В документации по адресу http://modxcms.com/template-variables.html.

Фрагменты

В интерфейсе менеджера MODx перейдите в раздел Ресурсы> Управление ресурсами> Фрагменты для создания или изменения фрагментов.

В MODx многоразовые фрагменты кода PHP называются сниппетами. Вы ссылаетесь на фрагмент по его имени и заключаете его в квадратные скобки, например:

 [[SnippetName]] 

Если вы передаете во фрагмент параметры, вы добавляете вопросительный знак в конец имени фрагмента и добавляете параметры, которым предшествует амперсанд:

 [[SnippetName? & parameter1 = `21` & parameter2 =` Вот строка текста`]] 

Фрагмент интерпретирует параметры в выводе.Обратите внимание, что параметры заключены в обратные кавычки: (`), а не в кавычки (» или ‘).

Фрагмент: «Wayfinder» — создание меню навигации

Вам следует воспользоваться фрагментом Wayfinder для автоматического создания меню навигации. Wayfinder создает неупорядоченный список, который можно стилизовать по-разному. Фрагмент встроен в шаблон следующим образом:

 [[Wayfinder? & startId = `[[UltimateParent]]` & level = `1`]] 

Обратите внимание, что фрагмент UltimateParent встроен в фрагмент Wayfinder.Фрагмент UltimateParent находит самую верхнюю страницу в иерархии и генерирует идентификационный номер этой страницы. Фрагмент Wayfinder создает систему меню в виде неупорядоченного списка на основе дочерних документов документа, на который ссылается параметр startId, который в данном случае является самой верхней страницей в иерархии. Вы также можете создавать системы меню для страниц более глубоко в иерархии сайта. Параметр & level сообщает фрагменту Wayfinder, насколько глубоко нужно заглядывать в иерархию при создании меню.Если уровень установлен на 1, меню будет состоять только из непосредственных дочерних документов. Если уровень установлен на 2, он будет смотреть на дочерние документы и документы «внуков».

Фрагмент Wayfinder также можно использовать для создания списка всех страниц в определенном каталоге, даже если список не предназначен для использования в качестве навигационного меню как такового. Wayfinder создаст маркированный список страниц, в котором каждый заголовок страницы будет ссылкой на саму страницу.

Фрагмент: «То же» — Использование данных с других страниц

Ditto — это сниппет, который может извлекать данные с других страниц, включая не только стандартные переменные страницы (pagetitle, longtitle, content и т. Д.)), но также и переменные шаблона. Если у вас есть шаблон для ввода данных о людях, таких как имя, фамилия, адрес электронной почты и т. Д., Вы можете извлечь эту информацию с нескольких страниц и отобразить ее на одной странице. Вот пример звонка Ditto:

 [[То же? & parent = `11` & depth =` 1` & tpl = `people` & sortBy =` lname` & sortDir = `ASC`]] 

В приведенном выше примере фрагмент Ditto будет отображать данные со всех страниц сразу под документом 11 (id = 11).Он не будет включать данные со страниц ниже по иерархии, потому что мы ограничили область действия & depth = `1`. Мы форматируем данные, используя блок под названием «люди» с параметром & tpl = `people` (tpl означает« шаблон », но это мини-шаблоны, а не полные веб-страницы). Мы сортируем страницы по фамилии, как указано в & sortBy = `lname`. Поле «lname» — это переменная шаблона, которая была бы создана заранее (поля «lname» не существует, если вы не создаете переменную шаблона с этим именем).Порядок сортировки возрастающий, как указано & sortDir = `ASC` (sortDir означает« направление сортировки »).

Ditto — мощный и несколько сложный сниппет. Обратитесь к документации на http://ditto.modxcms.com/ для получения дополнительной информации. Список параметров Ditto (http://ditto.modxcms.com/files/snippet-ditto-php.html) особенно полезен.

Блок, содержащий мини-шаблон, также должен содержать заполнители для различных полей данных. Заполнители обозначены скобками и знаком плюс; например: [+ my_placeholder +].Фрагмент для приведенного выше примера может выглядеть примерно так:

 

Имя: [+ fname +] [+ lname +]

Электронная почта: href = "mailto: [+ email +]"> [+ email +]

Биографический очерк: [+ биография +]

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

Фрагмент: «Панировочные сухари»

Фрагмент Breadcrumbs позволяет автоматизировать создание хлебных крошек.Вот пример вызова этого фрагмента:

 [[Панировочные сухари]] 

Параметры для этого фрагмента включают:

  • и maxCrumbs
  • & pathThruUnPub
  • & респектСкрытьменю
  • & показатьHomeCrumb
  • & showCrumbsAtHome
  • & показатьCurrentCrumb
  • и текущий AsLink
  • Сепаратор

  • и крошка
  • и homeCrumbTitle
  • & homeCrumb Описание
  • & titleField
  • & descField

Дополнительную документацию см. На http: // wiki.modxcms.com/index.php/Breadcrumbs

Фрагмент: «eForm»

eForm позволяет создать форму, которая отправляет информацию по электронной почте указанным получателям. Это довольно надежный фрагмент кода, который может быть довольно сложным в реализации, но при грамотном использовании работает достаточно хорошо. Обратитесь к документации на http://www.law.gmu.edu/org/assets/snippets/eform/docs/eform.htm для получения дополнительной информации, включая примеры на http://www.law.gmu.edu/ org / assets / snippets / eform / docs / eform_examples.htm.

Куски

В интерфейсе менеджера MODx перейдите в раздел Ресурсы> Управление ресурсами> Чанки, чтобы создать или изменить блоки.

В MODx повторно используемые биты HTML-кода называются порциями. Вы
ссылаетесь на чанк по его имени и заключаете его в фигурные скобки, например:

 {{ChunkName}} 

Чанки не могут содержать какой-либо PHP-код, но они могут содержать ссылки на фрагменты, которые действительно содержат PHP-код.

Плагины

Плагины

похожи на фрагменты, за исключением того, что они активируются определенными триггерными событиями, например, когда страница отображается, или когда пользователь сохраняет страницу и т. Д.Вероятно, вам не нужно создавать плагин для большинства вещей. Фрагменты — лучший и самый безопасный вариант. Опасность плагинов заключается в том, что они запускаются на всех страницах при срабатывании триггера, поэтому, если вы создадите плагин с синтаксической ошибкой в ​​коде, вы можете вывести из строя весь сайт. Так что будьте осторожны.

Плагин

: «PHx» — расширяемые заполнители

Один полезный плагин, который уже установлен в системе, называется PHx. Этот плагин позволяет расширить поведение заполнителей.Вы можете дать им логические условные конструкции if / then, преобразовать содержимое в верхний или нижний регистр и отформатировать заполнители разными способами. Вот пример условного оператора if / then:

 [+ phx: if = `[+ pref_name +]`: isnot = ``: then = `[+ pref_name +]`: else = `[+ fname +]` +] 

Этот оператор сообщает, что нужно отобразить переменную шаблона pref_name (предпочтительное имя), если она не пуста. В противном случае отобразится переменная шаблона fname (имя). Есть много способов использовать этот плагин с множеством вариантов синтаксиса.Обратитесь к документации PHx для получения дополнительной информации.

Плагин

: «Генератор оглавления страницы»

Еще один полезный плагин — Генератор оглавления страницы. Это позволяет автоматически создавать оглавление для конкретной страницы на основе заголовков на этой странице. Подробные инструкции можно найти на http://modxcms.com/Page-TOC-Generator-0.9.2-1731.html.

Для упрощения я создал несколько фрагментов кода HTML, в которых собраны некоторые из наиболее распространенных параметров оглавления.Чтобы создать оглавление на основе всех элементов

на странице, сделайте следующее:

 {{toc_begin_2}}
Поместите сюда содержимое страницы (с заголовками, абзацами и т. Д.).
{{toc_end}} 

Чтобы создать оглавление на основе всех элементов

и

на странице, сделайте следующее:

 {{toc_begin_2_3}}
Поместите сюда содержимое страницы (с заголовками, абзацами и т. Д.).
{{toc_end}} 

Информацию о других конфигурациях см. В документации по генератору оглавления страниц.

seo — 404 ошибки не найдены при использовании Modx CMS в подпапке

Я установил Modx CMS на моем хостинг-провайдере, но вместо того, чтобы устанавливать его в свой корневой каталог, где он обычно находится, я помещаю его в папку в корневом каталоге под названием makeabio.

Каталог

загружается нормально, но когда я нажимаю ссылку на своей странице, я попадаю в файл index.php, расположенный за пределами папки в основном каталоге. Я считаю, что это как-то связано с файлом .htaccess. Я предоставил это ниже.

  # MODX поддерживает дружественные URL-адреса через этот файл .htaccess. Вы должны обслуживать Интернет
# страницы через Apache с mod_rewrite, чтобы использовать эту функцию, и вы должны
# изменить имя файла с ht.access на .htaccess.
#
# Убедитесь, что RewriteBase указывает на каталог, в который вы установили MODX.(. *) $ index.php? q = $ 1 [L, QSA]

# Убедитесь, что файлы .htc обслуживаются с правильным типом MIME, что очень важно
# для XP SP2. Не комментируйте, если ваш хост разрешает переопределения типа MIME для htaccess.

#AddType text / x-component .htc

# Если ваш сервер еще не настроен как таковой, следующая директива
# следует раскомментировать, чтобы установить для параметра PHP register_globals значение OFF.
# Это закрывает серьезную дыру в безопасности, которой злоупотребляет большинство XSS (межсайтовый
# сценариев) атаки. Для получения дополнительной информации: http: // php.net / register_globals
#
# Чтобы убедиться, что для этого параметра установлено значение ВЫКЛ., Откройте Диспетчер и выберите
# Отчеты -> Информация о системе, а затем щелкните ссылку phpinfo (). Найти на странице
# для "register_globals". Локальное значение должно быть ВЫКЛЮЧЕНО. Если основное значение
# ВЫКЛЮЧЕНО, то эта директива здесь не нужна.
#
# IF REGISTER_GLOBALS DIRECTIVE ВЫЗЫВАЕТ 500 ОШИБОК ВНУТРЕННЕГО СЕРВЕРА:
#
# Ваш сервер не позволяет устанавливать директивы PHP через .htaccess. В этом
# если вы должны внести это изменение в свой php.ini вместо этого. Если ты
# используя коммерческий веб-хостинг, обратитесь к администраторам за помощью в
# делая это. Не на всех серверах разрешены локальные файлы php.ini, и они должны
# включить все конфигурации PHP (не только эту), иначе вы эффективно
# сбросить все на настройки PHP по умолчанию. Посетите www.php.net для получения более подробной информации.
# информация о настройке директив PHP.

#php_flag register_globals Off

# Для серверов, поддерживающих сжатие вывода, вам следует подобрать немного
# скорость, не комментируя следующие строки.#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5

# Следующие директивы останавливают мерцание экрана в IE при опрокидывании CSS. Если
# необходимо, не комментируйте следующие правила. Когда они будут на месте, у вас может быть
# выполнить принудительное обновление, чтобы увидеть изменения в ваших проектах.

#ExpiresActive On
#ExpiresByType image / gif A2592000
#ExpiresByType image / jpeg A2592000
#ExpiresByType изображение / png A2592000
#BrowserMatch "MSIE" brokenvary = 1
#BrowserMatch "Mozilla / 4. [0-9] {2}" brokenvary = 1
#BrowserMatch "Опера"!
#SetEnvIf brokenvary 1 force-no-chang
  

Я хочу, чтобы при нажатии на ссылку она переходила в каталог makeabio, а не в корневой каталог.

Как удалить косую черту из псевдонимов URL, поддерживающих MODX Раздел Sign LLC

Как удалить косую черту из псевдонимов URL, поддерживающих MODX

Опубликовано: 8 ноября, 2016 Рафи Хопкинс

Проблема

Предположим, вы один из тех умных людей, которые используют CMS, MODX. Мало того, вы пользуетесь одной из мощных готовых функций MODX: дружественными URL-адресами. MODX очень красиво создает псевдоним ресурса на основе названия ресурса (если у вас включен automatic_alias, который является системным по умолчанию).Если в заголовке страницы имеется косая черта, в псевдониме также появляется косая черта, что делает его похожим на путь к каталогу.

Пример

Вы создаете страницу с заголовком, содержащим косую черту, например: «Эта вещь / Эта вещь», и автоматически сгенерированный псевдоним ресурса становится: «this-thing / that-thing», в результате получается URL-адрес вида: http: / /sectionsign.com/this-thing/that-thing. URL-адрес будет работать, просто похоже, что в пути есть родительский каталог, а на самом деле его нет.

Решение

К счастью, MODX позволяет легко изменить это в системных настройках. Вот два подхода.

Во-первых, войдите в менеджер MODX, перейдите в Системные настройки и «Фильтр по области»> Friendly URL

Метод 1. Замените косую черту разделителем слов, также известным как дефис

Найдите параметр «Разделители слов псевдонима FURL» (ключ: friendly_alias_word_delimiters) и добавьте косую черту, чтобы он выглядел так:

-_ /

Это приведет к появлению псевдонима, который выглядит как «эта-та-вещь»

Метод 2: полностью удалить косые черты из псевдонима

Найдите параметр «Шаблон ограничения символов псевдонима FURL» (ключ: friendly_alias_restrict_chars_pattern) и измените его на:

/ [\ 0 \ x0B \ t \ n \ r \ f \ a & \ / = +% # <> "~:` @ \? \ [\] \ {\} \ | \ ^ '\\] /

(Этот шаблон регулярного выражения в точности совпадает с шаблоном по умолчанию, с добавленными символами «\ /» после амперсанда и примерно на трети длины.)

Это приведет к созданию псевдонима «это-то-что-то»

Я не могу себе представить, почему кто-то может предпочесть второй метод первому.

modx | Heine

Когда кто-то упомянул, что modx — это новый Drupal, мне стало любопытно, и я решил убедиться в этом сам.

Беглое исследование стало немного более сложным, когда я заметил, что по умолчанию modx не включает никакой защиты от подделок межсайтовых запросов (CSRF).Я обнаружил это, используя CSRF, чтобы изменить пароль администратора. Оказывается, это известно с 2008 года.

Еще немного покопавшись, я нашел билет MODX-206 (требуется регистрация), где была добавлена ​​проверка HTTP_REFERER как форма защиты от CSRF.

Эта опция отключена по умолчанию ; вам нужно посетить вкладку Инструменты — Конфигурация :: Сайт, чтобы включить параметр Проверить заголовки HTTP_REFERER? . (Примечание: это может оказаться болезненным, когда вы запускаете ZoneAlarm или что-то еще, что удаляет рефереры из заголовков).Этот параметр задокументирован только в сообщении на форуме.

К сожалению, проверка HTTP_REFERER проверяет только то, является ли URL-адрес сайта modx частью реферера. Это означает, что реферер http://evil.example.com/payload.html?s=http://vulnerable-modx.example.com/ проходит проверку.

Я разговаривал с несколькими разработчиками modx, и они сказали мне, что ряд «форм» также реагирует на запросы GET. Это означает, что , даже если проверка реферера зафиксирована , modx 1.0.0 сайт по-прежнему уязвим для CSRF, когда пользователям разрешено размещать URL-адреса на вашем сайте, поскольку они могут размещать URL-адреса на вашем собственном сайте. Если вы перейдете по одному из таких URL-адресов, войдя в систему как менеджер, средство проверки реферера получит правильный HTTP_REFERER и предпримет непреднамеренное действие.

Пока не составлен список действий, допускающих GET, трудно оценить влияние этой проблемы.

Помните, что злонамеренные пользователи могут сделать менее очевидным ваш целевой сайт с помощью tinyURL или настраиваемого (менее очевидного) редиректора 301.

Полное решение (работает с GET, работает для людей без HTTP_REFERER) — добавить токен в каждую форму и запрос GET (выполнение действия), а затем проверить их на фактических запросах GET и POST.

Из-за того, как создается modx 1.0.0 («Evolution»), это грандиозная задача, а не то, что разработчиков интересует или на что у них есть время. Они усиленно работают над следующей частью modx; Революция.

Принимая во внимание ситуацию с Evolution, я могу только посоветовать вам подождать, пока выйдет Revolution, прежде чем начинать с modx на серверах, подключенных к Интернету.

Если вы уже используете modx 1.0.0, вы в затруднительном положении. Я призываю вас развернуть и включить исправление проверки реферера как можно скорее после его выпуска. Не позволяйте пользователям размещать URL-адреса или изображения на вашем сайте (в зависимости от конфигурации вашего сайта) и переходите на Revolution, когда она выйдет.

Если хотите, можете попробовать приложенный патч для modx 1.0.0.

IMO, и я уверен, что, по мнению разработчиков modx, кодовая база Evolution не может умереть достаточно быстро.

ModX Revolution Friendly URLs — Кевин С. Пирни

Отправлено: 26 ноября 2013 г.

ModX Revolution Friendly URL-адреса

В последнее время я стал большим поклонником ModX, я использую его для запуска большого количества клиентских веб-сайтов и обнаружил, что он чрезвычайно быстрый, простой в использовании (с моей точки зрения) и его легко обучать.

Есть несколько вещей, которые мне в этом не нравятся, но этот пост не об этом (ну… по крайней мере, не обо всех :)). Â Этот пост посвящен поисковой оптимизации и оптимизации URL-адресов.

Теперь у ModX есть отличный встроенный способ, позволяющий нам иметь удобные URL-адреса для наших информационных ресурсов, однако по умолчанию все страницы содержимого HTML имеют расширение .html. Â Хотя обычно это не имеет большого значения, я немного настойчив, когда дело касается моего URL. Â Мне они нравятся без каких-либо продлений.

Итак … после долгих поисков в настройках своего сайта я наконец понял, как с этим справиться. Â Вот шаги, которые я предпринял, надеюсь, они помогут вам добиться того же.(. *) $ index.php? q = $ 1 [L, QSA, NC]

# кеширование статических файлов


# Чтобы предотвратить кеширование
#Header set Cache-Control «max-age = 0, no-cache, no-store, must-revalidate»
#Header set Pragma «no-cache»
#Header set Истекает «Wed, 11 Jan 1984 05:00:00 GMT»
# Кэш
Заголовок не установлен Pragma
Заголовок не установлен ETag
Заголовочный набор Cache-Control «max-age = 31556000, store, cache»
Заголовок не установлен Last-Modified
Набор заголовков Поддерживает активность соединения
Заголовок добавить X-PoweredBy «o7th Web Design ~ Real Design, Real Development, by Real People ~»


FileETag Нет

ExpiresActive On
ExpiresDefault «доступ плюс 1 секунда»
ExpiresByType текст / html M31556000
ExpiresByType image / gif M31556000
ExpiresByType изображение / jpeg M31556000
ExpiresByType изображение / png M31556000
Текст ExpiresByType / CSS M31556000
Текст ExpiresByType / JavaScript M31556000
Приложение ExpiresByType / javascript M31556000
Приложение ExpiresByType / x-javascript M31556000
ExpiresByType текст / xml M31556000
ExpiresByType image / svg + xml M31556000
Приложение ExpiresByType / x-font-ttf M31556000
Приложение ExpiresByType / x-font-truetype M31556000
Приложение ExpiresByType / x-font-opentype M31556000
Приложение ExpiresByType / vnd.ms-fontobject M31556000
Приложение ExpiresByType / x-font-woff M31556000

# Для серверов, поддерживающих сжатие вывода, вам следует подобрать немного
# скорость, не комментируя следующие строки.

php_flag zlib.output_compression Вкл.
php_value zlib.output_compression_level 9

Теперь, как вы можете видеть, он добавил для вас несколько дополнений, они призваны помочь ускорить работу сайта, обеспечить кеширование и т. Д. Основные строки, на которые следует обратить внимание, — это правила перезаписи.Вы заметите, что мы принимаем каждый запрос страницы и отправляем его процессору ModX.

Теперь следующий шаг, который необходимо сделать, — это, конечно, включить дружественные URL-адреса в нашем диспетчере ModX, поэтому войдите в систему и перейдите на страницу « Системные настройки ». Оказавшись там, выберите « Friendly URL » из « Фильтр по области .. ». падать.

Найдите « Use Friendly URL » и измените настройку на « Yes ». Â Я бы пошел еще дальше и убедился, что система проверяет наличие дубликатов и использует Alias ​​Path.

После этого перейдите в меню « System » еще раз и нажмите « Content Types ». Теперь типом содержимого по умолчанию для всех страниц ресурсов является HTML (текст / html), поэтому ищите HTML и в разделе « File Extension » удалите .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *