Super MODx SEO-strict +ускоряем фронтенд
Михаил задал вопрос про канонизацию урлов в MODx.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.
Поехали.
Вопрос канонизации урлов в MODx'е я изучал досконально.
I. MODx'овая система канонических урлов позволяет делать правильные автоматические редиректы на канонические урлы со всех возможных не канонических только в одном случае — это когда у ресурсов-контейнеров нету слеша на конце, а у ресурсов-неконтейнеров не установлено расширение, типа ".html".
Т.е. после всех манипуляций все урлы на сайте будут вида:
А действий не так много.
Идём в настройки и меняем следующее:
— Раздел «Дружественные URL»:
1. container_suffix «Суффикс контейнера» — делаем значение пустым;
2. friendly_urls «Использовать дружественные URL» — Да;
3. friendly_urls_strict «Строгий режим дружественных URL» — Да;
Автоматическая генерация, транслитерация, вложенные URL, дублирование во всех контекстах — устанавливаем по вкусу
— Раздел «Сайт»:
4. link_tag_scheme «Схема URL» — abs;
— Раздел «Шлюз»:
5. request_method_strict «Строгий метод запроса» — Да;
Потом идёт в «Сайт» => «Типы содержимого»:
6. HTML text/html — делаем значение пустым.
Вуаля. 6 шагов.
p.s. и удаляйте нахрен тег
Зато минусов хватает — новички, не понимая основу основ, постоянно об него спотыкаются и задают вопросы в стиле «А почему у меня стили не грузятся?» тем самым забивая и без того забитое информационное пространство.
Да ещё якорные-ссылки из-за этого тега ломаются.
В общем, первым делом убирайте его из стандартного шаблона и в своих шаблонах не прописывайте.
II. Далее в каждом шаблоне внутри тега head пишем:
Всё, добили seo-strict канониклом.
Но и этого, в своё время мне показалось мало.
III. Конфиг для nginx'а.
Скажу сразу, что для тех, кто использует апач — мне предложить нечего, извините.
Сразу ссылка: gist.github.com/antixrist/cf12d6b49367979ef622
И сразу дисклеймер: в этом конфиге нужно заменить DOMAIN.TLD на ваш домен (в нижнем регистре, разумеется) и заменить your-backend. Кто настраивал — разберётся.
Так вот, давайте я вам расскажу что здесь и как.
Все преобразования урлов происходят с учётом nginx'ового феншуя и правильности с т.з. seo. В этом не сомневайтесь.
— Код.
Редиректим с www. домена на «без www.»
— Код.
Автоматически направляем все поддомены на основной домен. Не забудьте в dns добавить CNAME запись вида:
— Код.
Прописываем индексные файлы.
— Код, код.
настраиваем обработку php-файлов.
p.s. о регулярке ^/(adminka|manager|connectors|connectors-[_A-Z-a-z-0-9]+|_build)/ будет дальше.
— Код.
Закрываем доступ к папке /core/ из вне. Я настроил так, чтобы при попытке обратиться к какому-либо файлу из этой директории, отдавалась 404, а не 403. Если вас это не устраивает, то вы можете раскомментировать вот эту строчку, закомментировав вот эту.
— Код.
Удаляем конечный index.html из урла.
— Код.
Удаляем конечный index.php из урла, отправляя его на php-обработку.
— Код.
Удаляем из урл двойные/тройные/etc слеши. Описание проблемы здесь.
Для того, чтобы это заработало, надо в секцию http добавить параметр
Секция http {} находится в файле nginx.conf.
Разбираясь в проблеме, стало понятно, что nginx по умолчанию обрабатывает несколько подряд идущих слешей как один. На вход в конфиг отдельно взятого сайта nginx отдавал урл таким, как будто никаких много-слешей там и не было. Происходит это потому, что «мержит» он их уровнем выше, в секции http, в котором и находится та самая настройка merge_slashes. Поэтому и регулярки на вычленение много-слешей не отрабатывали. Выключив эту настройку — всё заработало.
— Код.
Закрываем от внешнего доступа все .htaccess/.htpasswd и им подобные файлы. Опять же, я предпочитаю вообще не показывать, что такие файлы существуют (отдавая 404), нежели подогревать интерес у всяких умников, которые видят, что файл есть, а доступа к нему нет (отдавая 403).
— Код.
Создаём в корне сайта файлы 403.html, 404.html, 50x.html и дизайним их как душе угодно. Эти файлы из браузера открыть не получится (так настроено), но при соответствующих ошибках nginx будет отдавать именно эти страницы.
Ускоряем фронтенд.
— Код.
Подключаем конфиги кеширования и прочего, ускоряющего фронтенд, из комплекта html5boilerplate.
Их я немного подправлял, поэтому выкладываю свою версию: тыц. Просто закиньте эту папку в корень вашей nginx-установки
— Код.
На эту тему написано много, не буду вдаваться в подробности. Смысл в том, что у меня на каждом сайте все изображения, имеющие отношение к оформлению, лежат в папке "i", а все скрипты, я по максимуму переношу в папку "js".
Так вот, чтобы не было блокирующей загрузки файлов фронтенда и, чтобы браузер смог распараллелить загрузку изображений, скриптов и стилей, создаём поддомены i.domain.tld и js.domain.tld, которые являются алиасами соответствующих папок основного домена (вы не забыли в dns прописать cname для всех поддоменов?).
Соответственно, в своих шаблонах пишем что-то вроде такого:
К слову сказать, с css-файлами такого делать не нужно. Их надо подключать классическим способом.
С картинками сложнее, ибо постоянно ручками прописывать в css-файлах урлы вида "i.my-site.ru/design-image.png" геморройно. Но не невозможно.
Лично у меня этим занимается gulp с compass'ом, поэтому над урлами к оформительским изображениям в css'е я не заморачиваюсь.
Ну вот вроде бы и всё.
Кстати, о регулярке ^/(adminka|manager|connectors|connectors-[_A-Z-a-z-0-9]+|_build)/.
Есть замечательная статья Правильный хостинг для MODX Revolution 2, где Василий рассказывает как настроить свой собственный хостинг. В этой статье он делится bash-скриптами для автоустановки/обновления/удаления modx-сайтов для такого вот сервера.
Так вот. Эти скрипты я тоже дописал :)
Теперь у меня при установке:
— папка core выносится за пределы папки www (так что доступ из вне физически невозможен, к тому же в админке в диспетчере и источниках файлов папку core не видно вообще, что тоже накладывает определённую степень безопасности);
— папка manager переименовывается в adminka;
— папка connectors переименовывается в connectors-blablabla-random-key;
— всё это заносится в modx-конфиг и нигде ничего не ломается.
Всё это для пущей безопасности. + для каждого сайта автоматически устанавливается вот этот вот самый nginx-конфиг, который дополнительно настраивать не нужно.
Вот скрипты:
addplace.sh, addsite.sh, remove.sh, update.sh. Не забудьте прописать свой mysql-rool-пароль в каждый из скриптов и сделать их исполняемыми:
Вот с такими вот настройками я вообще не парюсь по поводу seo-strict урлов — ибо всё отточено. Плюс конфиг ускоряющий фронтенд — делает своё дело. Фронтенд я собираю gulp'ом, конфиг к которому я тоже долго обкатывал и оттачивал. Gulp кукожит и склеивает всё, что только может — скрипты, стили, картинки, генерирует critical-css и автоматически инжектит их в шаблоны (такого практически нигде нет).
По итогу, один из моих сайтов имеет 95 баллов по Google PageSpeed (на один меньше, чем у яндекса)). Остальные в районе 90 (±10) баллов.
И раз уж тема изначально зашла про seo, то стоит добавить, что скорость загрузки фронтенда — тоже такой неплохой фактор ранжирования.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.
Поехали.
Вопрос канонизации урлов в MODx'е я изучал досконально.
I. MODx'овая система канонических урлов позволяет делать правильные автоматические редиректы на канонические урлы со всех возможных не канонических только в одном случае — это когда у ресурсов-контейнеров нету слеша на конце, а у ресурсов-неконтейнеров не установлено расширение, типа ".html".
Т.е. после всех манипуляций все урлы на сайте будут вида:
/help/5105
с начальным слешем, без ".html" и слеша на конце.А действий не так много.
Идём в настройки и меняем следующее:
— Раздел «Дружественные URL»:
1. container_suffix «Суффикс контейнера» — делаем значение пустым;
2. friendly_urls «Использовать дружественные URL» — Да;
3. friendly_urls_strict «Строгий режим дружественных URL» — Да;
Автоматическая генерация, транслитерация, вложенные URL, дублирование во всех контекстах — устанавливаем по вкусу
— Раздел «Сайт»:
4. link_tag_scheme «Схема URL» — abs;
— Раздел «Шлюз»:
5. request_method_strict «Строгий метод запроса» — Да;
Потом идёт в «Сайт» => «Типы содержимого»:
6. HTML text/html — делаем значение пустым.
Вуаля. 6 шагов.
p.s. и удаляйте нахрен тег
<base href="blablabla">
, который modx засовывает в стандартный шаблон. Он вообще не нужен.Зато минусов хватает — новички, не понимая основу основ, постоянно об него спотыкаются и задают вопросы в стиле «А почему у меня стили не грузятся?» тем самым забивая и без того забитое информационное пространство.
Да ещё якорные-ссылки из-за этого тега ломаются.
В общем, первым делом убирайте его из стандартного шаблона и в своих шаблонах не прописывайте.
II. Далее в каждом шаблоне внутри тега head пишем:
[[Canonical]]
Потом создаём сниппет под названием Canonical и вставляем в него следующее:$resourceId = $modx->resource->get('id');
if (!$resourceId) { return ''; }
/** @var string|array $args */
$args = '';
if (!empty($scriptProperties['args'])) {
$args = $scriptProperties['args'];
if (strpos(ltrim($args), '{') === 0) {
$args = $modx->fromJSON($args);
$args = (is_array($args)) ? $args : '';
foreach ($args as $k => $v) {
if (is_string($k) && !trim($k) && is_string($v) && !trim($v)) {
unset($args[$k]);
}
}
}
}
$canonicalUrl = $modx->makeUrl($resourceId, '', $args, 'full');
return '<link rel="canonical" href="'. $canonicalUrl .'" />';
Этот сниппет может принимать один параметр args, в который можно передать строку запроса вида «qwe=asd&zxc=123» либо json-строку, пригодную для преобразования в массив и последующей его передачи в php-функцию http_build_query.Всё, добили seo-strict канониклом.
Но и этого, в своё время мне показалось мало.
III. Конфиг для nginx'а.
Скажу сразу, что для тех, кто использует апач — мне предложить нечего, извините.
Сразу ссылка: gist.github.com/antixrist/cf12d6b49367979ef622
И сразу дисклеймер: в этом конфиге нужно заменить DOMAIN.TLD на ваш домен (в нижнем регистре, разумеется) и заменить your-backend. Кто настраивал — разберётся.
Так вот, давайте я вам расскажу что здесь и как.
Все преобразования урлов происходят с учётом nginx'ового феншуя и правильности с т.з. seo. В этом не сомневайтесь.
— Код.
Редиректим с www. домена на «без www.»
— Код.
Автоматически направляем все поддомены на основной домен. Не забудьте в dns добавить CNAME запись вида:
* CNAME domain.tld.
с точкой на конце.— Код.
Прописываем индексные файлы.
— Код, код.
настраиваем обработку php-файлов.
p.s. о регулярке ^/(adminka|manager|connectors|connectors-[_A-Z-a-z-0-9]+|_build)/ будет дальше.
— Код.
Закрываем доступ к папке /core/ из вне. Я настроил так, чтобы при попытке обратиться к какому-либо файлу из этой директории, отдавалась 404, а не 403. Если вас это не устраивает, то вы можете раскомментировать вот эту строчку, закомментировав вот эту.
— Код.
Удаляем конечный index.html из урла.
— Код.
Удаляем конечный index.php из урла, отправляя его на php-обработку.
— Код.
Удаляем из урл двойные/тройные/etc слеши. Описание проблемы здесь.
Для того, чтобы это заработало, надо в секцию http добавить параметр
merge_slashes off;
Вот код.Секция http {} находится в файле nginx.conf.
Разбираясь в проблеме, стало понятно, что nginx по умолчанию обрабатывает несколько подряд идущих слешей как один. На вход в конфиг отдельно взятого сайта nginx отдавал урл таким, как будто никаких много-слешей там и не было. Происходит это потому, что «мержит» он их уровнем выше, в секции http, в котором и находится та самая настройка merge_slashes. Поэтому и регулярки на вычленение много-слешей не отрабатывали. Выключив эту настройку — всё заработало.
— Код.
Закрываем от внешнего доступа все .htaccess/.htpasswd и им подобные файлы. Опять же, я предпочитаю вообще не показывать, что такие файлы существуют (отдавая 404), нежели подогревать интерес у всяких умников, которые видят, что файл есть, а доступа к нему нет (отдавая 403).
— Код.
Создаём в корне сайта файлы 403.html, 404.html, 50x.html и дизайним их как душе угодно. Эти файлы из браузера открыть не получится (так настроено), но при соответствующих ошибках nginx будет отдавать именно эти страницы.
Ускоряем фронтенд.
— Код.
Подключаем конфиги кеширования и прочего, ускоряющего фронтенд, из комплекта html5boilerplate.
Их я немного подправлял, поэтому выкладываю свою версию: тыц. Просто закиньте эту папку в корень вашей nginx-установки
— Код.
На эту тему написано много, не буду вдаваться в подробности. Смысл в том, что у меня на каждом сайте все изображения, имеющие отношение к оформлению, лежат в папке "i", а все скрипты, я по максимуму переношу в папку "js".
Так вот, чтобы не было блокирующей загрузки файлов фронтенда и, чтобы браузер смог распараллелить загрузку изображений, скриптов и стилей, создаём поддомены i.domain.tld и js.domain.tld, которые являются алиасами соответствующих папок основного домена (вы не забыли в dns прописать cname для всех поддоменов?).
Соответственно, в своих шаблонах пишем что-то вроде такого:
<script src="http://js.my-site.ru/scripts.js"></script>
А файл scripts.js физически у вас должен лежать в /js/scripts.js в корне сайта.К слову сказать, с css-файлами такого делать не нужно. Их надо подключать классическим способом.
С картинками сложнее, ибо постоянно ручками прописывать в css-файлах урлы вида "i.my-site.ru/design-image.png" геморройно. Но не невозможно.
Лично у меня этим занимается gulp с compass'ом, поэтому над урлами к оформительским изображениям в css'е я не заморачиваюсь.
Ну вот вроде бы и всё.
Кстати, о регулярке ^/(adminka|manager|connectors|connectors-[_A-Z-a-z-0-9]+|_build)/.
Есть замечательная статья Правильный хостинг для MODX Revolution 2, где Василий рассказывает как настроить свой собственный хостинг. В этой статье он делится bash-скриптами для автоустановки/обновления/удаления modx-сайтов для такого вот сервера.
Так вот. Эти скрипты я тоже дописал :)
Теперь у меня при установке:
— папка core выносится за пределы папки www (так что доступ из вне физически невозможен, к тому же в админке в диспетчере и источниках файлов папку core не видно вообще, что тоже накладывает определённую степень безопасности);
— папка manager переименовывается в adminka;
— папка connectors переименовывается в connectors-blablabla-random-key;
— всё это заносится в modx-конфиг и нигде ничего не ломается.
Всё это для пущей безопасности. + для каждого сайта автоматически устанавливается вот этот вот самый nginx-конфиг, который дополнительно настраивать не нужно.
Вот скрипты:
addplace.sh, addsite.sh, remove.sh, update.sh. Не забудьте прописать свой mysql-rool-пароль в каждый из скриптов и сделать их исполняемыми:
filename.sh chmod -x
(вроде так, поправьте, пожалуйста, если я в команде ошибся).Вот с такими вот настройками я вообще не парюсь по поводу seo-strict урлов — ибо всё отточено. Плюс конфиг ускоряющий фронтенд — делает своё дело. Фронтенд я собираю gulp'ом, конфиг к которому я тоже долго обкатывал и оттачивал. Gulp кукожит и склеивает всё, что только может — скрипты, стили, картинки, генерирует critical-css и автоматически инжектит их в шаблоны (такого практически нигде нет).
По итогу, один из моих сайтов имеет 95 баллов по Google PageSpeed (на один меньше, чем у яндекса)). Остальные в районе 90 (±10) баллов.
И раз уж тема изначально зашла про seo, то стоит добавить, что скорость загрузки фронтенда — тоже такой неплохой фактор ранжирования.
Комментарии: 87
про i.domain.com и proxypass даже не задумывался… Только не увидел редиректа с https на http.
Было бы интересно взглянуть на галп файл, только начинаю покарять этого быстрого зверька — до этого сидел на гранте.
Было бы интересно взглянуть на галп файл, только начинаю покарять этого быстрого зверька — до этого сидел на гранте.
Только не увидел редиректа с https на httpЯ с https ещё не разбирался — надобности не было. А просто так ковыряться — времени жалко.
Но в загашнике лежит относительно недавняя статься на эту тему. Делюсь :)
Было бы интересно взглянуть на галп файлВот репозиторий — специально по вашей просьбе выкатил).
Но учтите, я писал только описание установки, но там нету ни слова про структуру каталогов, какие команды вводить, описание всех этих команд, что за чем идёт, каков порядок, описание логики работы critical-css, которого нет вообще практически ни у кого в мире.
+ там в комплекте идут часто используемые мной js-плагины (в том числе, которые я сам писал для себя), у которых стили интегрированы в sass-структуру каталогов.
Без какого-либо описания сами вы там вряд ли разберётесь. А описывать сейчас всё это мне не хочется, извините)
до этого сидел на гранте.Вот та же история. Грант меня просто вымораживал своей тупостью и тормознутостью. Он мне sass компилировал по 10-13 секунд. Это просто ад какой-то был. Воистину, gulp — это глоток свежего воздуха.
Пытаюсь вынести все картинки/js файлы на поддомен
В nginx.conf пишу так:
В днс только CNAME *.site.ru.
Редирект с www на без www происходит.
В nginx.conf пишу так:
server {
listen IP:80;
server_name i.site.ru;
location / {
proxy_pass http://site.ru/assets/images/;
}
}
Что делаю не так?) В днс только CNAME *.site.ru.
Редирект с www на без www происходит.
Херня это все. Я вот по любому запросу могу найти сайты, которые просто болт клали на SEO, не шаманят ничего, но стоят выше других.
Вы думаете, если поисковики от ссылок отказались, то найти одинаковые страницы и склеить их они не способны? Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же? Или вот вы предлагаете убрать />. Зачем его убирать? На что это влияет? Может быть еще с логотипа убирать ссылки? Насколько мне известно, сейчас поисковики настолько продвинулись, что могут легко читать css-файлы и понимать структуру страницы и оценивать юзабилити.
Вы думаете, если поисковики от ссылок отказались, то найти одинаковые страницы и склеить их они не способны? Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же? Или вот вы предлагаете убрать />. Зачем его убирать? На что это влияет? Может быть еще с логотипа убирать ссылки? Насколько мне известно, сейчас поисковики настолько продвинулись, что могут легко читать css-файлы и понимать структуру страницы и оценивать юзабилити.
)))) По последнему Вашему заявлению: этим занимаются ассесоры. :))
Нет, я про ассесоров не вел речь. Ассесоры это другое, я читал их инструкции. А вот сам лично слышал на конференции, как представитель Яндекса признался, что уже есть и работает технология визуальной оценки дизайна сайта, в том числе благодаря анализу исходного кода и css.
Так они давно начали разработку и внедрение подобных технологий. Суть в другом: основной вклад в эту лепту именно за ассесорами. В любом случа, по качеству оценки сайтов Яндекс впереди Гугла в разы. :)
только потому что Яндекс нацелен в основном на рунет, а Google глобальный. Не может же гугл позволить себе армию ассесеров. А для Яндекса и 100 или 1000 ассесоров хватит.
Как ты лихо тут за Яндекс с гуглом решил чего им хватит, а чего не хватит; чего они могут себе позволить, а чего не могут.
А они-то (вот ведь тупенькие!) о своих возможностях и потребностях, наверно, даже и не догадываются! xD
А они-то (вот ведь тупенькие!) о своих возможностях и потребностях, наверно, даже и не догадываются! xD
С чего ты взял что я что-то решил за кого-то? Вот если рассуждать по твоей логике, то получается (из предыдущего коммента) решил, что без 301 редиректа теряются много вычислительных мощностей и поэтому поисковикам важно это. Почему ты так решил? Что они не могут позволить себе это? Тупые что ли?)
С чего ты взял что я что-то решил за кого-то?Смотрим:
Не может же гугл позволить себе армию ассесеров.С чего ты это решил? Или не решил?
А для Яндекса и 100 или 1000 ассесоров хватит.А это ты с чего решил? Или не решил?
Сперва ты говоришь одно, потом ты говоришь, что такого не говорил. Ок.
то получается (из предыдущего коммента) решил, что без 301 редиректа теряются много вычислительных мощностей и поэтому поисковикам важно это. Почему ты так решил? Что они не могут позволить себе это? Тупые что ли?)Может потому, что они сами об этом пишут? Как прямые рекомендации для вебмастеров? Не? Не слышал?
Но, по-моему, ты нихрена не понял, извини. Либо ничего из написанного мной не читал.
Я про алгоритм оценки говорил, а не работу ассесоров. Яндекс давно отказался от ссылок, в отличие от Гугла. Это о многом говорит понимающему хоть немного. :)
Пфф, как же меня это умиляет.
Человек задал чёткий вопрос — как сделать автоматические редиректы. Я дал ответ + несколько других советов и готовых решений. Все довольны.
А нет, не все. Ты зачем-то начал холивары разводить.
Весь твой комментарий — это то самое стереотипное представление о помощи на русскоязычном форуме — вместо того, чтобы дать ответ, люди начинают обсуждать, что он всё делает не так, что каждый сделал бы лучше, да и вообще все вокруг тупые.
Не надо так.
Но, всё же, давай пройдёмся по твоим замечаниям.
А ничего, что в этом же абзаце причины и расписаны? Или мне два раза для тебя повторить, чтобы лучше дошло?
Да, и замечу, что причины вполне себе объективные, а не ради какого-то там seo-шаманствва.
Но вернёмся в дубликатам.
И в этом плане, Яндекс — красава, гугл — фу-фу-фу (и именно с маленькой буквы). Потому что ссылки — это анахронизм, который делает интернет тупее и отвратнее. Яндекс сделал огромнейший шаг вперёд. Этим он заставляет вебмастеров, редакторов и владельцев сайтов работать над контентом и сервисами, а не заниматься пустоголовой закупкой ссылок и войной бюджетов.
Во-вторых.
Адрес страницы — это PRIMARY key, если хотите. Уникальный ключ. Именно от урл поисковик всегда отталкивается в своих алгоритмах.
Но вопрос нужно поставить по-другому.
«Вы думаете, если вебмастера фреймворки освоили, то сделать так, чтобы одна страница открывалась по одному урлу они не способны? Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же?»
Чувствуешь разницу? Если вебмастерам это не нужно, то нахрена это нужно поисковику? В глобальном масштабе ты представляешь какой это объём машино-часов, дата-центров, сжигание электроэнергии и отапливание космоса? И нахрена? Чтобы подчищать за такими вот вебмастерами? Перестраивать свои индексы, пересчитывать показатели, вот это вот всё. Никому на хрен это не сдалось.
Но, опять же, это не говорит о том, что поисковики это не умеют. Просто не надо путать причину и следствие.
Конечно, бывают и исключения. Например, для той же википедии, или хабра, или тысяч, сотен тысяч других авторитетных разнотематических ресурсов, которые действительно создают контент и привносят что-то новое в свою отрасль и в информационное пространство в целом, поисковики, можно сказать, делают для таких сайтов исключения, пренебрегая многими факторами. В seo терминологии это называется «траст» (trust — доверие).
Кстати, это прямым образом относится теме сегодняшнего диалога на странице с вопросом Михаила — modx.pro — это трастовый ресурс в своей отрасли, который действительно создаёт контент, которым люди действительно пользуются и находят на нём ответы на свои вопросы. Вот и вся магия.
А остальные 90% сайтов (миллиарды, миллиарды сайтов) мира — это поток информационного говна, которое копируют друг у друга, переписывают и копируют, которое реально ничего нового не привносит.
А самое забавное — ещё не могут и урлы нормально настроить. Вот ведь какая ирония.
Зато считают, что поисковик вместо них напрячься должен.
А нафига оно им надо?
Человек задал чёткий вопрос — как сделать автоматические редиректы. Я дал ответ + несколько других советов и готовых решений. Все довольны.
А нет, не все. Ты зачем-то начал холивары разводить.
Весь твой комментарий — это то самое стереотипное представление о помощи на русскоязычном форуме — вместо того, чтобы дать ответ, люди начинают обсуждать, что он всё делает не так, что каждый сделал бы лучше, да и вообще все вокруг тупые.
Не надо так.
Но, всё же, давай пройдёмся по твоим замечаниям.
Я вот по любому запросу могу найти сайты, которые просто болт клали на SEO, не шаманят ничего, но стоят выше других.И я могу. И кто угодно может. Однако эта твоя фраза всего лишь показатель того, что в теме ты, мягко скажем, не разбираешься. Зато судить берёшься.
Вы думаете, если поисковики от ссылок отказались, то найти одинаковые страницы и склеить их они не способны?
Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же?И да, и нет. Но к этому мы ещё вернёмся.
Или вот вы предлагаете убрать />. Зачем его убирать? На что это влияет?Я так полагаю, что речь идёт о теге base? Если нет, то пропускаем этот пункт. А если да…
А ничего, что в этом же абзаце причины и расписаны? Или мне два раза для тебя повторить, чтобы лучше дошло?
Да, и замечу, что причины вполне себе объективные, а не ради какого-то там seo-шаманствва.
Может быть еще с логотипа убирать ссылки?Передёргиваете, молодой человек.
Насколько мне известно,Аааа! Ну вот с этого и надо было начинать! Ты слышал звон, а вот где он — уточнить не догадался. Что, впрочем, опять же говорит о том, что опыта у тебя, опять же мягко скажем, маловато. А вот осуждать — так это в первых рядах.
сейчас поисковики настолько продвинулись, что могут легко читать css-файлы и понимать структуру страницы и оценивать юзабилитиДа, могут читать. Да, могут понимать структуру страницы (это вообще одно из первых, что поисковики научились делать, между прочим). Но оценка юзабилити в глобальном масштабе — это работа алгоритмическая, основанная на статистике, паттерны для которой задаёт армия ассесоров. Можно я не буду объяснять что это значит?
Но вернёмся в дубликатам.
Вы думаете, если поисковики от ссылок отказались,Во-первых, отказались не поисковики, а Яндекс. Для гугла — закупай себе ссылки да не парься.
И в этом плане, Яндекс — красава, гугл — фу-фу-фу (и именно с маленькой буквы). Потому что ссылки — это анахронизм, который делает интернет тупее и отвратнее. Яндекс сделал огромнейший шаг вперёд. Этим он заставляет вебмастеров, редакторов и владельцев сайтов работать над контентом и сервисами, а не заниматься пустоголовой закупкой ссылок и войной бюджетов.
Во-вторых.
то найти одинаковые страницы и склеить их они не способны?
Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же?Для начала нужно уяснить одну вещь, которую многие почему-то не понимают.
Адрес страницы — это PRIMARY key, если хотите. Уникальный ключ. Именно от урл поисковик всегда отталкивается в своих алгоритмах.
Но вопрос нужно поставить по-другому.
«Вы думаете, если вебмастера фреймворки освоили, то сделать так, чтобы одна страница открывалась по одному урлу они не способны? Они настолько тупые, что не могут понять что страница со слешем в конце и без слеша — не одна и та же?»
Чувствуешь разницу? Если вебмастерам это не нужно, то нахрена это нужно поисковику? В глобальном масштабе ты представляешь какой это объём машино-часов, дата-центров, сжигание электроэнергии и отапливание космоса? И нахрена? Чтобы подчищать за такими вот вебмастерами? Перестраивать свои индексы, пересчитывать показатели, вот это вот всё. Никому на хрен это не сдалось.
Но, опять же, это не говорит о том, что поисковики это не умеют. Просто не надо путать причину и следствие.
Конечно, бывают и исключения. Например, для той же википедии, или хабра, или тысяч, сотен тысяч других авторитетных разнотематических ресурсов, которые действительно создают контент и привносят что-то новое в свою отрасль и в информационное пространство в целом, поисковики, можно сказать, делают для таких сайтов исключения, пренебрегая многими факторами. В seo терминологии это называется «траст» (trust — доверие).
Кстати, это прямым образом относится теме сегодняшнего диалога на странице с вопросом Михаила — modx.pro — это трастовый ресурс в своей отрасли, который действительно создаёт контент, которым люди действительно пользуются и находят на нём ответы на свои вопросы. Вот и вся магия.
А остальные 90% сайтов (миллиарды, миллиарды сайтов) мира — это поток информационного говна, которое копируют друг у друга, переписывают и копируют, которое реально ничего нового не привносит.
А самое забавное — ещё не могут и урлы нормально настроить. Вот ведь какая ирония.
Зато считают, что поисковик вместо них напрячься должен.
А нафига оно им надо?
Просто понимаешь, что это все догадки. SEO как религия. Многие верят в нее, но факты же говорят об обратном -)) Но просто есть люди, которым выгодно поддерживать мифы, поэтому появляются всякие сакральные термины, типа «траст», «ап», «новый алгоритм», «зоопарк» (к слову о том, что гуглу пофиг сколько ссылок ты покупаешь).
Как-то помнится, ты вызывался оптимизировать kino-govno. Что из этого получилось? После введения всех этих доработок посещалка подросла? Кстати, интересно было бы сделать выводы по этому проекту, он же на modx и вроде оптимизирован просто суперски, как в названии статья (Super Modx optimized), только забыли несчастный base href убрать от туда почему-то.
Ну или по любому другому коммерческому или можно и развлекательному сайту, но с хорошей статистикой, а не так, что: до моего вмешательство было 1 посещение, в результате моих действий посещалка выросла на 100%.
Как-то помнится, ты вызывался оптимизировать kino-govno. Что из этого получилось? После введения всех этих доработок посещалка подросла? Кстати, интересно было бы сделать выводы по этому проекту, он же на modx и вроде оптимизирован просто суперски, как в названии статья (Super Modx optimized), только забыли несчастный base href убрать от туда почему-то.
Ну или по любому другому коммерческому или можно и развлекательному сайту, но с хорошей статистикой, а не так, что: до моего вмешательство было 1 посещение, в результате моих действий посещалка выросла на 100%.
Мужик, вот больше всего меня раздражает передёргивание фактов и неподкреплённые субъективные заявления.
И да, посещалка не подросла. Но она не скатилась в полное говно после переезда новый домен. Хотя история знает тысячи случаев, когда после смены доменов сайты полностью вылетают из индекса.
Просто понимаешь, что это все догадки.Субъектив. Опытом всё подкрепляется. Опытом. Которого у тебя, вроде как, нет.
SEO как религия.И да, и нет. Да — для тех, кто в этом не разбирается. Нет — для тех, кто экспериментирует и внедряет.
Но просто есть люди, которым выгодно поддерживать мифыДа, но это относится как раз к покупке ссылок. Мифы эти сеют те, которым выгодна эта самая продажа — сапы, сеопульты и прочие прожигатели космоса.
поэтому появляются всякие сакральные термины, типа «траст», «ап», «новый алгоритм», «зоопарк»Откуда это в твоей голове? Всё, что ты перечислил (кроме «зоопарк» — это я вообще хз, что ты имел в виду, не слышал о таком) — это вполне себе официальная терминология, на которой разговаривают, в том числе, сотрудники того же Яндекса.
Как-то помнится, ты вызывался оптимизировать kino-govno. Что из этого получилось? После введения всех этих доработок посещалка подросла?Мы проделали большой объём работ. Но не достаточный. Потому что… А впрочем не важно. Несколько причин есть.
И да, посещалка не подросла. Но она не скатилась в полное говно после переезда новый домен. Хотя история знает тысячи случаев, когда после смены доменов сайты полностью вылетают из индекса.
Super Modx optimizedСтатья называется по другому. Но такое название — это для привлечения внимания.
только забыли несчастный base href убрать от туда почему-то.Потому Василий — не зелёный новичок и знает как им пользоваться и сделать так, чтобы он не мешал. Повторю, если ты этого ещё не понял, к seo этот тег не имеет никакого отношения.
Мне тег base нравится, и я считаю его полезным. Но проблемы у новичков с ним бывают регулярно, это факт.
Правда, вместо рекомендаций что-то убирать, я обычно даю ссылку «на почитать», зачем он нужен.
Правда, вместо рекомендаций что-то убирать, я обычно даю ссылку «на почитать», зачем он нужен.
А какого типа ошибки могут быть с base, если в двух словах? Или если стили и вообще все ссылки подгружаются нормально и якорные ссылки тоже без ошибок работают, то может быть все и ок? А то может быть я весь в ошибках.
Регулярная ошибка — это когда сайт отзывается на 2 и более доменных имени с одним шаблоном, в котором вызывается кэшированный [[++base_url]].
Кэш почистили, юзер зашел по одному имени — base_url закэшировался. Теперь при заходе на другое имя все ссылки выходят на первый домен, ajax запросы становятся кросдоменными, еще и стили могут потеряться.
Нужно или вызывать [[!++base_url]], или делать редирект на какое-то одно имя.
Кэш почистили, юзер зашел по одному имени — base_url закэшировался. Теперь при заходе на другое имя все ссылки выходят на первый домен, ajax запросы становятся кросдоменными, еще и стили могут потеряться.
Нужно или вызывать [[!++base_url]], или делать редирект на какое-то одно имя.
Скорее всего Антон спрашивал не про [[++base_url]], а про html-тег base :)
Хотя ты, скорей всего, подразумевал то, что ошибки бывают при использовании конструкции base href="[[++base_url]]" ?
Антон, в любом случае, если всё работает, то, какгрица, не трожь)
Если не уверен, то для понимания общих принципов, почитай вот это.
Я же рекомендую не использовать тег base совсем. А все ссылки, урл на картинки/скрипты/стили начинать со слеша (т.е. делать урлы абсолютными). Тогда никаких ошибок не будет и ссылки (в т.ч. якорные) 100% будут работать правильно.
Хотя ты, скорей всего, подразумевал то, что ошибки бывают при использовании конструкции base href="[[++base_url]]" ?
Антон, в любом случае, если всё работает, то, какгрица, не трожь)
Если не уверен, то для понимания общих принципов, почитай вот это.
Я же рекомендую не использовать тег base совсем. А все ссылки, урл на картинки/скрипты/стили начинать со слеша (т.е. делать урлы абсолютными). Тогда никаких ошибок не будет и ссылки (в т.ч. якорные) 100% будут работать правильно.
Да у меня и так все ссылки, в т.ч. и якорные работают. Так что похоже с base все путем. Я ж тут помнимашь от темы озарения жду, потому что проблема есть, а в чем непонятно.
Сайт на эво был взломан и переделан на рево полностью. На время переделки, да и сейчас старый, очищенный от бяки сайт на эво сунули на домен ру, который быстро догнал позиции.ком в яндексе. Потом сделали на рево на.ком, добавили там сниппет MetaX, и сделали в процессе самопальные ajax- фильтры. Казалось бы — сайт такой же, но он отстает от прошлых позиций, а эво-версия на ру на них держится. Позже, когда сайт новый уже проиндексировался, увидел, что там можно смотреть содержание папок и вставил в htaccess Options -Indexes. В результате несколько сотен страниц выпали из индекса по 404 ошибке (тупых и палящих важное, которые показывали содержание assets и т.п.). суффиксы и префиксы сохранили с эво (/ и .html) остались сохранены с эво, урлы тоже похоже почти везде. MetaX вставлял canonical и этим отрезал пагинацию. Фильтры работают в принципе через пост, так что от них дублей быть не может пока (переделаем может, удобно кнопку назад использовать). Я выпилил из MetaX тег canonical и еще некоторые, написал свой сниппет. Вставляю теперчи ", страница n" в тайтл, дескрипшин и h1 на страницах пагинации больше первой, но вроде эффект от этого всего как мертвому припарки. Сайт сильно отстает от прошлых позиций, а эво-версия на.ру их прочно удерживает… Я ума не приложу с чего это. На днях попробую бороться с дублями плагином Василия. Я просто раньше думал, что если правильно настройки указать — там и так все дубли рубятся.
Сайт на эво был взломан и переделан на рево полностью. На время переделки, да и сейчас старый, очищенный от бяки сайт на эво сунули на домен ру, который быстро догнал позиции.ком в яндексе. Потом сделали на рево на.ком, добавили там сниппет MetaX, и сделали в процессе самопальные ajax- фильтры. Казалось бы — сайт такой же, но он отстает от прошлых позиций, а эво-версия на ру на них держится. Позже, когда сайт новый уже проиндексировался, увидел, что там можно смотреть содержание папок и вставил в htaccess Options -Indexes. В результате несколько сотен страниц выпали из индекса по 404 ошибке (тупых и палящих важное, которые показывали содержание assets и т.п.). суффиксы и префиксы сохранили с эво (/ и .html) остались сохранены с эво, урлы тоже похоже почти везде. MetaX вставлял canonical и этим отрезал пагинацию. Фильтры работают в принципе через пост, так что от них дублей быть не может пока (переделаем может, удобно кнопку назад использовать). Я выпилил из MetaX тег canonical и еще некоторые, написал свой сниппет. Вставляю теперчи ", страница n" в тайтл, дескрипшин и h1 на страницах пагинации больше первой, но вроде эффект от этого всего как мертвому припарки. Сайт сильно отстает от прошлых позиций, а эво-версия на.ру их прочно удерживает… Я ума не приложу с чего это. На днях попробую бороться с дублями плагином Василия. Я просто раньше думал, что если правильно настройки указать — там и так все дубли рубятся.
Т.е. вы хотите сказать, что у вас в данный момент два практически идентичных (по структуре, дизайну и контенту) незазеркалированных сайта, которые находятся в выдаче по одинаковым запросам — один повыше, другой пониже, — и яндех их не зааффилировал?
Скажу 3 вещи:
1. Как вам такое в голову пришло — выкладывать 2 одинаковых сайта не заредиректив их и не склеив?
2. И вы ещё недовольны? Да вам радоваться надо! И пофиг — взломано оно там или нет.
Конечно это, скорей всего, до поры до времени, и рано или поздно один из них с треском из выдачи вылетит (по закону подлости, в выдаче останется тот, у которого позиции хуже).
И конечно, заниматься сейчас вангованием по комментарию и пытаться определить — что же вам там такого надо починить, чтобы всё стало хорошо — я не буду.
3. У вас очень аморфные и безмятежные конкуренты. Что за ниша? Какой регион?)
Скажу 3 вещи:
1. Как вам такое в голову пришло — выкладывать 2 одинаковых сайта не заредиректив их и не склеив?
2. И вы ещё недовольны? Да вам радоваться надо! И пофиг — взломано оно там или нет.
Конечно это, скорей всего, до поры до времени, и рано или поздно один из них с треском из выдачи вылетит (по закону подлости, в выдаче останется тот, у которого позиции хуже).
И конечно, заниматься сейчас вангованием по комментарию и пытаться определить — что же вам там такого надо починить, чтобы всё стало хорошо — я не буду.
3. У вас очень аморфные и безмятежные конкуренты. Что за ниша? Какой регион?)
«Как вам такое в голову пришло — выкладывать 2 одинаковых сайта не заредиректив их и не склеив?»
Обыкновенная житейска необходимость.
В robots.txt был указан Host старый домен.ком, я думал, что этого достаточно. Ну ок, буду читать справку по склейке. Просто сайт на ру вернулся на первую строку в регионе (хотя здесь как раз нам не надо, работают оффлайновые магазины), поэтому мы и боялись редериктить и как-то трогать.ру.
Ну ок, значит сравнивать таким образом эво и рево не имеет смысла и дальнейшее обсуждение проблем сайта здесь — лютый оффтопище.
Спасибо, что толкнули в нужном направлении. А то я лазал по сайтам и искал, что же в первом есть такого, чего нет во втором, который на рево ))
Обыкновенная житейска необходимость.
В robots.txt был указан Host старый домен.ком, я думал, что этого достаточно. Ну ок, буду читать справку по склейке. Просто сайт на ру вернулся на первую строку в регионе (хотя здесь как раз нам не надо, работают оффлайновые магазины), поэтому мы и боялись редериктить и как-то трогать.ру.
Ну ок, значит сравнивать таким образом эво и рево не имеет смысла и дальнейшее обсуждение проблем сайта здесь — лютый оффтопище.
Спасибо, что толкнули в нужном направлении. А то я лазал по сайтам и искал, что же в первом есть такого, чего нет во втором, который на рево ))
Чтобы не быть голословным, я работал в seo-компании (ТОП5 в РФ), но не оптимизитором. Знаю всю. эту кухню изнутри и не только кухню именно этой компании, но и других из топ10, потому что они более аффилированны между собой, чем ты знаешь.
Да, СЕО не наука… Это миф, шоб оправдывать деньги конторам, которые не работают нихера, а только закупают ссылки, чтобы отчётики клиенту предоставлять. :) Есть очень хорошая статья — Тайное интервью с сотрудником топовой seo-конторы. :)
Жорик стал инфобизнесменом, не верь ему xD
Надеюсь ты это не в серьёз. :)))
Да это шутка юмора там такая, у него на блоге. Он же там начал задвигать всякую инфу за коврижки. Хотя писал, что никогда никакой информации продавать не будет. А потом пошло-поехало)
Его дело. Пишет по сути. Задашь вопрос на мыло — всегда ответит. А на блоге да, много малолеток-бездельников. :)
Его дело.Да это понятно) Мне, наверно, надо было в пред-предыдущем комменте тег сарказм поставить — я ж и правда не всерьёз :)
Пишет по сути.Воды мало, согласен. Он типа арбайтена, только не такой категоричный. И грамотнее)
В точку. :)) Арбу бы инфостиль использовать в постах, цены бы ему не было.
Я работал программистом в топовой seo-конторе, автоматизируя seo-прихоти seo-шников, считая всё это магией.
После — работал оптимизатором уже в фирме попроще, региональной, но в моём регионе одной из самых известных и узнаваемых. После этой работы к seo отношение поменялось.
А ещё мой друг, после моего курса обучения, устроился работать директологом в агентство, которое занимается исключительно контекстом, которое входит в топ-10 интернет-агентств.
Так что не надо мне тут авторитетом давить.
Так что давай в эту полемику ударяться не будем.
Да и вообще давай закругляться — обсуждение зашло в тупик. С самого начала было понятно, что все и так останутся при своём мнении. Для чего ты начал этот холивар? Хз. От чсв, наверное.
После — работал оптимизатором уже в фирме попроще, региональной, но в моём регионе одной из самых известных и узнаваемых. После этой работы к seo отношение поменялось.
А ещё мой друг, после моего курса обучения, устроился работать директологом в агентство, которое занимается исключительно контекстом, которое входит в топ-10 интернет-агентств.
Так что не надо мне тут авторитетом давить.
потому что они более аффилированны между собой, чем ты знаешь.И вот опять ты за меня решил, что я чего-то там не знаю. Я тебе сам могу столько всего невыдуманного об аффилированности порассказывать — уши завянут.
Так что давай в эту полемику ударяться не будем.
Да и вообще давай закругляться — обсуждение зашло в тупик. С самого начала было понятно, что все и так останутся при своём мнении. Для чего ты начал этот холивар? Хз. От чсв, наверное.
Мужики то тут за срач устроили? У меня вопрос к Василию: можно ли сделать чтобы по умолчанию у сниппетов pdoTools в &scheme подставлялось значение link_tag_scheme, чтобы явно не указывать у каждого сниппета?
Мужики то тут за срач устроили?Где срач? Какой срач? :)
Ааа, так вы про то, что выше!
Так то — не срач! То — лишь беседа трёх господ, не схожих в мненьи :)
Ссылка по теме: http://www.yandex.ru/////
Ну вот к слову сказать, у Яндекса много косяков на своих же контентных сервисах, которые в прямую расходятся с его же собственными рекомендациями.
Но это ж Яндекс) Он может себе такое позволить)
Но это ж Яндекс) Он может себе такое позволить)
Еще по умолчанию у всех косяк с /index.php/хотьчто/ открыт, тоже нужно закрывать, извиняюсь если в посте было, читал бегло. 3 часа ночи на дворе :)
Это на modx-сайтах такое? Подобного я, вроде, не видел.
На каких-нибудь вордпрессах или dle — да, там вроде есть такое. Но вот на modx?
На каких-нибудь вордпрессах или dle — да, там вроде есть такое. Но вот на modx?
Да из коробки. http://modx.ru/index.php/хотьчто/
Ну так у меня 404 отдаёт. Не вижу здесь никаких проблем — всё так, как дОлжно быть.
А то, что на отдельно взятом сайте вместо ожидаемой 404 отдаётся 200 ОК, так это проблемы отдельно взятого сайта, а не modx'а в целом.
А то, что на отдельно взятом сайте вместо ожидаемой 404 отдаётся 200 ОК, так это проблемы отдельно взятого сайта, а не modx'а в целом.
Ну тут да, 404 с 200 ответом. Вчера чистый modx ставил, по умолчанию site.ru/хотьчто/ отдает 404, а site.ru/index.php/хотьчто/ отдает 200.
Скорей всего, на это влияет какая-то из этих настроек:
friendly_urls_strict
request_method_strict
friendly_urls_strict
request_method_strict
при любых их значениях так
Хм, ну может у меня nginx такой путь разруливает — не знаю. Но факт остаётся фактом — на сайте настроено всё, как в статье, и такой урл отдаёт 404
Да это на аппаче.
Странно вчера проверил, не подхватывало это значение в pdoMenu, pdoCrumbs и pdoPage. Через час еще раз проверю, отпишусь.
Ну так этот параметр по умолчанию не пуст у самих сниппетов =) Видишь, там value = -1?
Укажи им всем &scheme=`` и тогда должно подхватываться системное значение.
Укажи им всем &scheme=`` и тогда должно подхватываться системное значение.
Ну я про это и написал, чтобы вообще не указывать &scheme=``, а брать системную настройку по умолчанию, и если нужно исправил в одном месте и все.
Проверил сейчас pdoMenu с пустым &scheme=``в link_tag_scheme=full, отдает ссылки как будто value до сих пор -1. Кэш и uri почистил.
Спасибо
C pdoPage таже фигня, а вот pdoCrumbs работает как ты пишешь.
Как я понял, этот каноникал не будет добавлять номер страницы при пагинации, например. Будет только адрес конкретного ресурса. Если урл страницы, например, сделан через компонент virtual page, то он тоже этот урл не учтет, а выдаст просто адрес ресурса.
Этот сниппет может принимать один параметр args, в который можно передать строку запроса вида «qwe=asd&zxc=123» либо json-строку, пригодную для преобразования в массив и последующей его передачи в php-функцию http_build_query.Всё ж уже учтено. В этот параметр можно передавать какие угодно параметры строки запроса.
+ я сейчас немного подправил сниппет, чтобы можно было сделать следующее:
1. Врубаем pdoParser, который идёт в комплекте с pdoTools, чтобы можно было получать значения глобальных массивов прямо в шаблонах и чанках;
2. И пишем в шаблоне вот такое:
<!-- получаем переменную из строки запроса (допустим её значение равно "123"), делаем её xss-безопасной и создаём из неё плейсхолдер: -->
[[!#GET.var_from_query_string:htmlentities:toPlaceholder=`var_from_query_string`]]
<!-- [[+page]] - это плейсхолдер, к примеру, от pdoPage. Допустим он равен "2". -->
<!-- [[+vp.some_var]] - это плейсхолдер, к примеру, от VirtualPage. Допустим он равен "qweqweqwe" -->
<!-- делаем первый элемент json-массива с пустым ключом и пустым значением. сниппет его подчистит -->
[[!Canonical?
&args=`{"":""
[[!+var_from_query_string:notempty=`,"param": "[[+var_from_query_string]]"`]]
[[!+page:notempty=`,"page": "[[+page]]"`]]
[[!+vp.some_var:notempty=`,"some_var": "[[+vp.some_var]]"`]]
}`
]]
На выходе получим вот такой тег:
<link rel="canonical" href="http://your-site.ru/your-page?param=123&page=2&some_var=qweqweqwe" />
Если ни один плейсхолдеров не будет иметь значения, всё-равно в сниппет попадёт валидная json-строка, у которой будет один единственный элемент, у которого не будет ключа. Сниппет такой элемент удалит и передаст в modx'овый построитель урлов пустой массив — и ничего не сломается.
А на выходе будет простой урл, без параметров запроса:
<link rel="canonical" href="http://your-site.ru/your-page" />
И нагрузка на парсер совершенно не существенная.
А, с VirtualPage'м такой трюк не сработает, да.
Хотя надо будет код его посмотреть — может быть там можно будет как-то получить текущий сформированный урл из сниппета и его подставлять. Либо… Ну тут есть варианты. Руки дойдут — посмотрю, как лучше сделать.
Хотя надо будет код его посмотреть — может быть там можно будет как-то получить текущий сформированный урл из сниппета и его подставлять. Либо… Ну тут есть варианты. Руки дойдут — посмотрю, как лучше сделать.
Зачем вы с каноникалами изобретаете велосипеды? просто же все решается на фильтрах для страниц, для остального вообще каноникалы не нужны
<link rel="canonical" href="[[~[[*id]]? &scheme=`full`]][[+page:isnt=`1`:then=`?page=[[+page]]`]]"/>
Просто если бы все знали как правильно написать этот каноникл, то такой сниппет был бы не нужен. Но знают же не все)
Кстати,
И писать меньше :)
Кстати,
[[Canonical]]
отработает быстрее, чем <link rel="canonical" href="[[~[[*id]]? &scheme=`full`]][[+page:isnt=`1`:then=`?page=[[+page]]`]]"/>
И писать меньше :)
писать больше для страниц, если дальше ресурсов не надо, а страницы, например, не нужны в индексе, то запись сокращается в разы :)
<link rel="canonical" href="[[~[[*id]]? &scheme=`full`]]"/>
Да вопрос-то не во мне — я-то знаю как писать) Вопрос в том, чтобы разработчикам было удобнее, которые не особо знают как это правильно делать. А так написал одно слово, добавил квадратных скобок по бокам и работает)
а как заставить pdoMenu и pdoCrumbs генерировать abs ссылки? После того, как убрал base, эти компоненты делают неправильные ссылки) если сам вставляю ссылки на ресырсы в документе, то генерируются в соответствии с настройкой link_tag_scheme, а pdoTools пофиг на нее.
Прошу прощения, если вопрос не по теме.
Сделал все как описано в данной статье, до части с nginx (для него надо просить у active.by доступ, попросил и жду ответа). Ресурс на https.
Сейчас происходят такие вещи. Если что-то выбираешь в меню, то url как будто наращивается.
jinini.com/gallery/painting/gallery/photography/blog/cg-graphics/blog/cg-graphics/quixel-suite
что приводит к тому, что по страницам через меню не погуляешь.
Иногда вижу «На этой странице обнаружена циклическая переадресация» пока прогрузится моя страница.
Можно как то такую проблему исправить?
Меню построено на Wayfinder.
P.s.: прошу прощения за свою некомпетентность. Сайт как хобби, сам я 3Dшник. Поиском пользоваться вроде умею, но он меня не вывел на ответ: (
Сделал все как описано в данной статье, до части с nginx (для него надо просить у active.by доступ, попросил и жду ответа). Ресурс на https.
Сейчас происходят такие вещи. Если что-то выбираешь в меню, то url как будто наращивается.
jinini.com/gallery/painting/gallery/photography/blog/cg-graphics/blog/cg-graphics/quixel-suite
что приводит к тому, что по страницам через меню не погуляешь.
Иногда вижу «На этой странице обнаружена циклическая переадресация» пока прогрузится моя страница.
Можно как то такую проблему исправить?
Меню построено на Wayfinder.
P.s.: прошу прощения за свою некомпетентность. Сайт как хобби, сам я 3Dшник. Поиском пользоваться вроде умею, но он меня не вывел на ответ: (
Вопрос с
«Сейчас происходят такие вещи. Если что-то выбираешь в меню, то url как будто наращивается.
jinini.com/gallery/painting/gallery/photography/blog/cg-graphics/blog/cg-graphics/quixel-suite
что приводит к тому, что по страницам через меню не погуляешь.»
решен.
Я просто удалил Wayfinder и поставил pdoMenu. И все заработало как надо. Вопрос решился за пару минут: )
«Сейчас происходят такие вещи. Если что-то выбираешь в меню, то url как будто наращивается.
jinini.com/gallery/painting/gallery/photography/blog/cg-graphics/blog/cg-graphics/quixel-suite
что приводит к тому, что по страницам через меню не погуляешь.»
решен.
Я просто удалил Wayfinder и поставил pdoMenu. И все заработало как надо. Вопрос решился за пару минут: )
А ты точно не пропустил пункт 4?
url могут «наращиваться» только если ссылки не от корня сайта, а относительные. Изменить это можно в настройках сайта (если используются сниппеты pdoTools последней версии) или напрямую, указав сниппету
4. link_tag_scheme «Схема URL» — abs;
url могут «наращиваться» только если ссылки не от корня сайта, а относительные. Изменить это можно в настройках сайта (если используются сниппеты pdoTools последней версии) или напрямую, указав сниппету
[[!pdoMenu?
&parents=`0`
&scheme=`abs`
]]
Василий пасиба: ) Но я быстрее Вас отписался))) Я просто перешел на pdoMenu и все идеально заработало: ))) Мое меню на которое я потратил столько времени, я даже никак не переделывал а просто сменил в чанке wayfinder на pdoMenu: )
Но вот вопрос с https остался. С кода страницы
/>
Я в силу того, что плохо во всех этих делах разбираюсь, может быть ошибаюсь, но после проделанных операций с этого топика, страницы моего сайта ощутимо быстрее грузятся… Или может совпадение и хостер ускорился в это утро…
Но вот вопрос с https остался. С кода страницы
/>
Я в силу того, что плохо во всех этих делах разбираюсь, может быть ошибаюсь, но после проделанных операций с этого топика, страницы моего сайта ощутимо быстрее грузятся… Или может совпадение и хостер ускорился в это утро…
Если прям ощутимо быстрее, то вряд ли из-за nginx. Скорее из-за замены Wayfinder'а на pdoMenu)
Может быть: ) А pdoMenu мне невероятно поднял настроение. За него Василию спасибо очень большое. Сейчас разбераюсь что еще есть в pdoTools и что уже установлено у меня, чтоб позаменять. Потом куплю поиск от Василия и сейчас затестирую его галерею и наверное все мои проблемы закончатся: )
Apd. pdoSitemap тоже ппц быстрый. Ух…
Очень жаль, что в интернете есть много негатива в сторону Василия и pdoTools. Я как не разбирающийся, простой пользователь MODx, читал и сомневался, что нужно ставить этот пакет. Из-за этого мое хобби (сайт) постепенно превратилось в кошмар, когда на устаревшие компоненты надо гуглить еще множество кастылей, а иногда отказываться от чего то и придумывать другую структуру сайта… Столько времени потерял ни на что, когда решение было так близко…
Очень жаль, что в интернете есть много негатива в сторону Василия и pdoTools. Я как не разбирающийся, простой пользователь MODx, читал и сомневался, что нужно ставить этот пакет. Из-за этого мое хобби (сайт) постепенно превратилось в кошмар, когда на устаревшие компоненты надо гуглить еще множество кастылей, а иногда отказываться от чего то и придумывать другую структуру сайта… Столько времени потерял ни на что, когда решение было так близко…
а вот кстати, как сделать редиректы с заглавных букв на маленькие?
modx.pro/howto/5139-super-modx-strict-seo-accelerated-frontend/
modx.pro/howto/5139-super-modx-strict-seo-accelerated-FRONTEND/
modx.pro/howto/5139-super-modx-strict-seo-accelerated-frontend/
modx.pro/howto/5139-super-modx-strict-seo-accelerated-FRONTEND/
Хм, а ведь хороший вопрос. Удивительно, но мне даже и мысли не приходило заглавные буквы проверять.
modX такие урлы, к сожалению, не канонизирует. Значит надо разруливать nginx'ом. А это надо тестить и обкатывать. А это уже как время появится.
modX такие урлы, к сожалению, не канонизирует. Значит надо разруливать nginx'ом. А это надо тестить и обкатывать. А это уже как время появится.
поддержка ipv6 для nginx nginx.org/ru/docs/http/ngx_http_core_module.html#listen
потестить тут ipv6-test.com/validate.php
потестить тут ipv6-test.com/validate.php
Куда надо пихнут этот код панел vestacp
home/admin/conf/web/ngnix.conf в эту конфиг
home/admin/conf/web/ngnix.conf в эту конфиг
Понятия не имею
Вот код ngnix
P.S Испитат не могу 1 раз угробил хостинг :D
server {
listen xx.xx.xx.xx:80;
server_name site.ru www.site.ru;
error_log /var/log/apache2/domains/site.ru.error.log error;
location / {
proxy_pass http://xx.xx.xx.xx:8080;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mp4|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/admin/web/site.ru/public_html;
access_log /var/log/apache2/domains/site.ru.log combined;
access_log /var/log/apache2/domains/site.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias /home/admin/web/site.ru/document_errors/;
}
location @fallback {
proxy_pass http://xx.xx.xx.xx:8080;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
include /home/admin/conf/web/nginx.site.ru.conf*;
}
Таки ест для каждого сайта в панеле суда надо пихнут.P.S Испитат не могу 1 раз угробил хостинг :D
Вот код ngnixЗдОрово. Но мне-то он зачем?
Суда ставит можно!
Доброго дня, настроил все как здесь написано, если установить сайт с нуля, то все работает, а вот при обновлении почему то упорно не хочет видеть, что /core/ находится за пределами основной папки, также и с /connectors/, вобщем после обновления появляются папки manager core и connectros в своих обычных местах. Все пути в xml и скриптах проверил. Помогите пожалуйста, в чем может быть проблема?
Чем вам всем base href не угодил? Кроме «ломания» якорных ссылок (что решаемо) и ошибки новичков со стилями, кроме «и т.п.» есть примеры его невероятного вреда? А вот без него как раз вложенные ссылки ломаются. И решения этого вопроса тут не приводится. Уберет ваш новичок базу, включит вложенные url, и сюда же с вопросом «почему не работает» прибежит.
Посмотрите 4 пункт, и что будет если поменять link_tag_scheme на abs.
что решаемоНе подскажите каким образом? Чтобы нативненько.
А вот без него как раз вложенные ссылки ломаются. И решения этого вопроса тут не приводится.Вы не внимательно прочитали. Но выше Андрей вам уже подсказал.
Самое простое [[~[[*id]]]]#anchor
Касательно тех 6 пунктов, да, почти работает, но, если страница будет ссылаться сама на себя (редкий случай на практике, но возможен), посмотрите что получится тогда. С base href ничего такого не случается.
Касательно тех 6 пунктов, да, почти работает, но, если страница будет ссылаться сама на себя (редкий случай на практике, но возможен), посмотрите что получится тогда. С base href ничего такого не случается.
Слушайте, я на полном серьёзе не понимаю зачем вы всё это пишете.
Если хотите использовать — используйте! В чём проблема?
Если хотите использовать — используйте! В чём проблема?
У меня проблем нет, но вы не внимательно читали мои сообщения? Там есть один вопрос — есть ли у вас примеры «вреда» от base href, кроме упомянутых в статье, один из которых, просто ошибка абстрактного новичка с неверным указанием путей. Второй это анкоры. Чисто из интереса вопрос был задан. Ответа не было. Зато есть минусы. Ну ок, обычная практика.
Второе — указал на имеющую место быть проблему, при использовании разобранного в статье способа (хоть и редкую, но все же). Еще один минус. Ладно, слушайте, можете просто минусануть и не отвечать. Не очень интересно по два раза разжёвывать смысл своих постов. Всего хорошего.
Второе — указал на имеющую место быть проблему, при использовании разобранного в статье способа (хоть и редкую, но все же). Еще один минус. Ладно, слушайте, можете просто минусануть и не отвечать. Не очень интересно по два раза разжёвывать смысл своих постов. Всего хорошего.
да что ж такое..
По поводу минусов — их я вам не ставил. Оставьте беспочвенные обвинения при себе.
Вы бы хоть привели примеры того, КАК НАДО писать, чтобы проблему обнаружить и как писать НЕ НАДО, чтобы этих проблем не было — было бы ГОРАЗДО больше пользы для (тех самых абстрактных) новичков.
В своей статье я привёл подход с наименьшим сопротивлением, который вызывает наименьшее количество проблем у тех, для кого это пояснение писалось.
Если вы хорошо разбираетесь в данном вопросе — напишите развёрнутый комментарий-пояснение или мини-статью, разложите в ней по полочкам для новичков варианты подходов с тегом base и без него, какие проблемы возникают и как их обходить. И, при случае, я всем буду скидывать ссылку на вашу статью. Даже добавлю ссылку на ваше развёрнутое уточнение в саму статью. Вот ЭТО будет действительно полезно и ценно.
А пока вы только бессмысленно воздух сотрясаете. Мне ничего доказывать не надо — я всё это и так знаю.
С вашей стороны, хотите — используете, хотите — нет. Можете написать пояснение, можете нет. Очевидно же, ну.
И ваши минусы со мной согласны.
По поводу минусов — их я вам не ставил. Оставьте беспочвенные обвинения при себе.
вы не внимательно читали мои сообщения?Очень внимательно
есть ли у вас примеры «вреда» от base href, … один из которых, просто ошибка абстрактного новичка с неверным указанием путейи дальше:
Уберет ваш новичок базу, включит вложенные url, и сюда же с вопросом «почему не работает» прибежитДобавить нечего. Кроме одного. Чисто для себя погуглите на данном сайте и всех остальных modx-сообществах по фразе "base href" и "убрал базу, включил вложенные url, почему не работает" и сравните количество вопросов.
…
указал на имеющую место быть проблему при использовании разобранного в статье способа (хоть и редкую, но все же)
Самое простое [[~[[*id]]]]#anchorВместо "#" вы везде предлагаете писать в 13 раз больше символов, нагружать парсер modx'а там, где этого можно было не делать и бороться с возможными конфликтами во вложенных чанках. Вместо единоразового редактирования шаблона и изменения одной настройки.
если страница будет ссылаться сама на себя (редкий случай на практике, но возможен), посмотрите что получится тогда. С base href ничего такого не случается.Что такого страшного случится в этом случае, чего не случится с «base href»? Вы же понимаете, что без примеров описанная проблема — самая что ни на есть абстрактная? Или не понимаете?
Вы бы хоть привели примеры того, КАК НАДО писать, чтобы проблему обнаружить и как писать НЕ НАДО, чтобы этих проблем не было — было бы ГОРАЗДО больше пользы для (тех самых абстрактных) новичков.
В своей статье я привёл подход с наименьшим сопротивлением, который вызывает наименьшее количество проблем у тех, для кого это пояснение писалось.
Если вы хорошо разбираетесь в данном вопросе — напишите развёрнутый комментарий-пояснение или мини-статью, разложите в ней по полочкам для новичков варианты подходов с тегом base и без него, какие проблемы возникают и как их обходить. И, при случае, я всем буду скидывать ссылку на вашу статью. Даже добавлю ссылку на ваше развёрнутое уточнение в саму статью. Вот ЭТО будет действительно полезно и ценно.
А пока вы только бессмысленно воздух сотрясаете. Мне ничего доказывать не надо — я всё это и так знаю.
С вашей стороны, хотите — используете, хотите — нет. Можете написать пояснение, можете нет. Очевидно же, ну.
И ваши минусы со мной согласны.
А я сказал, что именно вы ставите минусы? Я констатировал факт отсутствия ответа на конкретный вопрос, который, кстати и сейчас, в вашей демагогии, отсутствует. Если главная проблема для вас это неправильно указанные пути к css и js файлам, которые пропишет ваш несчастный новичок, очень здорово, хоть кто то заботится о людях. А минусить тут любителей хватает. И мне честно говоря, до этого далеко параллельно.
Что вы пытались выделить тремя цитатами в начале своего сообщения, вообще не ясно. Добавить там действительно нечего. Не нашли больше за что зацепиться? Ок. выделили редкая проблема? И что дальше, если она редкая, значит на нее можно закрыть глаза? Ну, ваше право.
Пример вам проблемы надо? А вы не понимаете, что прежде чем давать инструкцию к действию, и писать свою статью, нужно самому все досконально проверить, прежде чем тыкать ей как истиной в последней инстанции. ну? очевидно! Но я скажу что получится —
Инструкцию к действию? Ок — используйте базу и не парьтесь. Если это как то мешает, попробуйте обойтись без нее. Только надо объективно понимать, нужно вам это или нет. Какие от нее могут быть минусы, я, лично, знаю, и могу их привести, в отличие, похоже, от вас, многоуважаемый автор.
И если вернуться к сути моего изначального вопроса, он звучал так — можете ли вы назвать дополнительные минусы использования base href, помимо того, что написали в своей статье? Ответа не было, зато дохрена писанины в защиту своей правоты, хотя информация и не оспаривалась в принципе, было лишь указано на то, что метод имеет и минус.
Короче, в политику не желаете податься? Там ценится такое мастерство — вместо конкретного ответа на заданный вопрос как раз таки сотрясать воздух.
Что вы пытались выделить тремя цитатами в начале своего сообщения, вообще не ясно. Добавить там действительно нечего. Не нашли больше за что зацепиться? Ок. выделили редкая проблема? И что дальше, если она редкая, значит на нее можно закрыть глаза? Ну, ваше право.
писать в 13 раз больше символовУ вас на сайтах крайне часто и много бывает анкорных ссылок? От ссылки «наверх» и, в редких случаях, ссылок 5-7 в навигации, парсер, конечно, колоссально перегрузиться.
Пример вам проблемы надо? А вы не понимаете, что прежде чем давать инструкцию к действию, и писать свою статью, нужно самому все досконально проверить, прежде чем тыкать ей как истиной в последней инстанции. ну? очевидно! Но я скажу что получится —
site.ru/catalog/catalog/tovar
Дублирование родителя в url, приводящее к 404. Не благодарите. Инструкцию к действию? Ок — используйте базу и не парьтесь. Если это как то мешает, попробуйте обойтись без нее. Только надо объективно понимать, нужно вам это или нет. Какие от нее могут быть минусы, я, лично, знаю, и могу их привести, в отличие, похоже, от вас, многоуважаемый автор.
И если вернуться к сути моего изначального вопроса, он звучал так — можете ли вы назвать дополнительные минусы использования base href, помимо того, что написали в своей статье? Ответа не было, зато дохрена писанины в защиту своей правоты, хотя информация и не оспаривалась в принципе, было лишь указано на то, что метод имеет и минус.
Короче, в политику не желаете податься? Там ценится такое мастерство — вместо конкретного ответа на заданный вопрос как раз таки сотрясать воздух.
Виктор, ещё раз повторяю — мне пофигу на эти надуманные проблемы, все эти доказательства моей «неправоты» и все эти претензии на то, что я не предоставил доказательств твоей.
До тех пор, пока всё твоё общение сводится к одним лишь претензиям, конкретно тебе я буду повторять одно: не нравится — уёбывай. Тебе здесь никто ничего не должен.
До тех пор, пока всё твоё общение сводится к одним лишь претензиям, конкретно тебе я буду повторять одно: не нравится — уёбывай. Тебе здесь никто ничего не должен.
.
Это сообщение было удалено
Это сообщение было удалено
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.