.htaccess работает только в Apache2, Nginx же рассчитан на более высокие нагрузки и не может себе позволить читать дополнительный файл при каждом запросе.
То есть, если на сервере есть файл site.com/filename.txt, то nginx его отдаст сам. А если нет, то будет вызван
/index.php?q=/filename.txt
А дальше уже сам сайт определяет, что отдать на этот запрос — файл, редирект или 404.
Таким образом, при прямом запросе index.php?id=10 friendly urls и редиректы сервера не используются вообще. Движок получает команду показать 10ю страницу и сам её обрабатывает.
Версия MODX 2.2 при этом умела делать редиректы на канонический адрес. Новые версии, почему-то, перестали. Но каким образом за вас это должен исправлять хостинг — я отказываюсь понимать.
Откуда nginx вообще знает, какой именно адрес соответствуют 10 странице в MODX? Это знает только MODX. Ну и откуда у вас на сайте такие ссылки, чтобы к ним обращался поисковик — отдельный вопрос.
И
Покопался еще, и выяснил, что за это отвечает системная настройка request_method_strict, отключенная по умолчанию.
Правда, плагин всё равно лучше, потому что он редиректит куда надо, а настройка просто включает игнорирование неправильных запросов. Но, в любом случае, обвинять хостинг в вашей проблеме не стоит.
В плагине и правда нужно добавить проверку на $modx->context->key != 'mgr', тут я не доглядел.
P.S. Это АнтиСЕО началось с версии 2.3, насколько я могу судить. Это ж тысячи сайтов должны были просесть в выдаче.
Суть в том, что пользоваться {$_modx} можно давать кому угодно, он только для чтения, грубо говоря. Тогда как через {$modx} можно легко убить всю систему. По этой же причине и php функции отключены по умолчанию.
У тебя файл .htaccess на 25 килобайт с десятками хитрых правил, которые нужно как-то переписать для Nginx, или забить в компонент Redirector для MODX. После этого все редиректы вернутся и проблем с SEO больше не будет.
.htaccess работает только в Apache2, Nginx же рассчитан на более высокие нагрузки и не может себе позволить читать дополнительный файл при каждом запросе.
Или они в .htaccess настроены, а тут нужно их под nginx переписать и вся проблема именно в этом? Действительно, залез в .htaccess, а там:
Видимо таким образом Apache2 типа «сам» и делает редиректы — при их настройке, да.
То есть, вся претензия к хостингу, MODX, SEO, nginx и прочему заключается в «Мы не знали, что у вас нет Apache2 и не читали раздел настройка веб-сервера»?!
И
В плагине и правда нужно добавить проверку на $modx->context->key != 'mgr', тут я не доглядел.
P.S. Это АнтиСЕО началось с версии 2.3, насколько я могу судить. Это ж тысячи сайтов должны были просесть в выдаче.
Допиши, что считаешь нужным, и пришли pull-request. Тогда эта информация добавится на сайте.
Все сетуют на плохую документацию, но никто, почему-то, не хочет её улучшать.
Можно и не делать пустой &tvPrefix, но тогда, не поверишь, нужно выводить ТВ вот так:
Про вывод через точку я тебе давал ссылку еще 2 часа назад.
А вообще, можно увидеть все плейсхолдеры, если просто не указывать чанк.
Может, прочитаешь уже документацию, а?
Между {$modx} и {$_modx} есть очень серьёзная разница, и если ты пытаешься использовать вторую переменную как первую, то и будет fatal error.
Везде всё хорошо =)
Собственно, именно поэтому я и предпочитаю не использовать ТВ вообще. И теперь это вполне возможно, даже без miniShop2.
При работе с ТВ запрос с фильтрацией по этим 2м ТВ выходил под 0.5 сек, сейчас — 0.06 сек. Мой плагин выглядит вот так:
Ка видите, там еще и сортировка по рейтингу тикетов есть — дарю! OnTicketVote был добавлен в последней версии Tickets.
Сами по себе скрипты и стили не вставляются, их кто-то вставляет.
Подробности.
По умолчанию как раз 10 минут, проверил.
Как у других дополнений — не знаю.