На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

Как убрать /page/ из адреса страниц?

Вопросы-ответы / 11 июля 2014

В адресной строке Maxsite выводит ссылок в таком виде: http://сайт.ru/page/zdorovie

Вопрос: можно ли выводить (хочется) в таком виде: http://сайт.ru/zdorovie

Хочу убрать /page/. Как это сделать?

Спасибо.

Комментариев: 25
  1. Тенгиз, во-первых, спасибо за пожелания проекту smile

    Во-вторых, вы при установке движка внимательно смотрели файл \application\config\mso_config.php ?

    В нём есть такой фрагмент:

    // Если вы не хотите использовать возможность MaxSite CMS создавать
    // синонимы страниц page и category, то выставьте значение mso_permalink_no_slug = "no"
    // Если закомментировать, то например, есть страница с короткой ссылкой hello, тогда 
    // http://сайт/page/hello и http://сайт/hello - будут синонимами
    // Аналогично для рубрик: есть рубрика news, тогда
    // http://сайт/category/news и http://сайт/news - будут синонимами
    // Данная возможность включена по-умолчанию и используется для
    // совместимости при переходах с других CMS с ЧПУ без второго сегмента
    // По-умолчанию поиск slug по рубрикам запрещён, чтобы его включить
    // нужно задать в mso_permalink_slug_cat значение yes
    # $config['mso_permalink_no_slug'] = "no"; // полностью отключить синонимы 
    # $config['mso_permalink_slug_cat'] = "yes"; // разрешить также синонимы рубрик

    Для решения вашей задачи-вопроса достаточно раскомментировать строчку с $config['mso_permalink_no_slug'] и задать ей значение «yes». Т.е. должно выглядеть так:

    $config['mso_permalink_no_slug'] = "yes"; // полностью отключить синонимы

    Фраза комментария «полностью отключить синонимы» может немного вводить в заблуждение (особенно если посмотреть на названия ключа mso_permalink_no_slug), но логика тут именно такая - значение yes включает синонимы, а значение no выключает.

    После того, как синонимы будут включены, вам останется отлько позаботиться о том, чтобы на самом сайте все внутренние ссылки были сформированы без slug-а page. Для этого, возможно, придётся немного поправить шаблон и стандартные виджеты (например, last_pages).

    ЗЫ: Сейчас на maxhub-е стоит настройка отключить синонимы:

    $config['mso_permalink_no_slug'] = "no"; // полностью отключить синонимы

    Можете проверить, убрать в адресной строке slug page - страница найдена не будет.

    ЗЗЫ: Я не знаю зачем вам такая возможность с синонимами, но если это не связано с необходимостью поддерживать ссылки на ранее созданный на другом движке сайт, то лучше синонимы выключать, чтобы избежать появления дублей страниц. Поисковые системы не любят дубли контента wink

  2. Спасибо, Илья, за пояснения и исчерпывающий ответ.

  3. Илья, а как убрать page, что бы при этом синонимы были отключены?

  4. а как убрать page, что бы при этом синонимы были отключены?

    Николас, один из вариантов - создать свой type-файл для page_404 (type/page_404/page_404.php) и реализовать в нём алгоритм сопоставления uri и шаблона отображения.

  5. А как убрать /page/ из ссылок на пост.

    На главной странице отображаются привью статей. Они имеют вид: сайт/page/ссылка.

    Что бы не было дублей я сделал редирект: сайт/page/ссылка - > сайт/ссылка

    Что и где подправить ,что бы на главной ссылки были без /page/

    И в каких плагинах это необходимо сделать и как?

  6. Rudic, сейчас самый простой способ убрать /page/ - использовать плагин Friendly_urls.

    Что и где подправить ,что бы на главной ссылки были без /page/

    Да практически весь движок надо править, чтобы убрать. Ведь это лежит в основе движка. А самое главное - при обновлении движка придётся переделывать работу.

  7. Так в плагине page_views в файле index.php надо в строке 299 сделать изменения:

    было:

    $link = '

  8. Так в плагине page_views в файле index.php надо в строке 299 сделать изменения:

    убрать . 'page/';

    Загрузить исправленный файл на хостинг. Деинсталлировать плагин и включить снова. Настроить и включить.

    Получаться ссылки без Page.

    Теперь буду искать как это сделать на главной. У меня просто не слишком большие знания в php.

  9. Теперь буду искать как это сделать на главной.

    Да, примерно так. Нужно найти плагины виджетов, которые выводятся на главной и поправить.

  10. Т.е. лучше поступить наоборот? Включить Page и что было везде везде.

    А как тогда решить вопрос с перенаправлением?

    Ибо сделать редирект с page на без page - нет проблем.

    А обратно?

    У меня два блога на max site. Думаю надо попробовать на одном так, на другом наоборот и посмотреть результат по дублям и по индексации поисковиками.

  11. Да практически весь движок надо править, чтобы убрать. Ведь это лежит в основе движка. А самое главное - при обновлении движка придётся переделывать работу.

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

    Заодно может знаний наберусь на примерах smile

  12. Но от дублей избавиться надо бы.

    Начните рассказывать с самого начала - почему вы вообще озаботились наличием /page/? До сих пор особых проблем с этим ни у кого не было. Если у кого было желание другое чпу сделать - так они уже все (кто хотел) перешли на указанный выше плагин. А вас что беспокоит в наличии page? Откуда у вас дубли появились?

  13. Хорошо!

    Появились дубли вида: сайт/page/страница и сайт/страница.

    Я почитал тут на форуме и поправил конфиг:

    На одном блоге я сделал с page: сайт/page/страница.

    На другом решил сделать без page: т.к. было уже некоторые количество внешних ссылок на сайт вида сайт/страница и сделать редирект с сайт/page/страница на сайт/страница. Но действительно на всём движке ссылки генерируются с page и наверно зря я это затеял.

    Что в итоге посоветуете?

  14. А и ещё. Появляются дубли по description типа: сайт/next/2....3....4

    Так же с тегами, наверное надо как-то чуть менять description?

  15. Появились дубли вида: сайт/page/страница и сайт/страница.

    Да, возможность ведения синонимов требует контроля и лучше эту возможность без особой надобности не включать.

    Но действительно на всём движке ссылки генерируются с page и наверно зря я это затеял.

    Да, эта особенность заложена в концепции движка. Если она смущает, то лучше совсем поменять движок, нежели бороться с «ветряной мельницей». Хотя сейчас появился вариант с плагином чпу и он позволяет не меняя движок достичь желаемых адресов без программирования.

    Что в итоге посоветуете?

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

    Появляются дубли по description типа: сайт/next/2....3....4 Так же с тегами, наверное надо как-то чуть менять description?

    Конечно нужно проводить дополнительные правки в шаблоне, чтобы дубли description убрать. Все по разному эту задачу решают- универсального решения нет.

  16. Спасибо!

    Я тогда оставлю страницы page ибо движок мне нравится (Авторы - молодцы!)

    Но таки попробую для собственного интереса побороться с «ветряной мельницей» для собственного интереса.

    На данный момент: если в файле page.php сделать проверку: Если переменная Type = page/, то убрать Type.

    То в на всех страницах адрес в заголовках получается без Page. Осталась правда ссылка на кнопке 'Обсудить'.

  17. Делаем тоже самое с ссылкой на Комментарии.

    И подсказали: Не забываем про карту сайта Sitemap.xml smile

    Пока так - с виду вроде работает - будем посмотреть smile

  18. движок мне нравится (Авторы - молодцы!)

    От всего коллектива разработчиков отвечу - спасибо на добром слове! red face

    И подсказали: Не забываем про карту сайта Sitemap.xml smile

    Интересно, что ты будешь делать с картой сайта (кстати, на страницу /sitemap смотрел - там всё в норме?) - она же каждый при публикации новой записи автоматически раз переформируется?

  19. У меня вдруг страница сайт/about стала показывать 404, а доступной стала по сайт/page/about. Ничего нигде не менял. Разве что установил плагин Friendly_urls, но посмотрел настройки и отключил, ничего не перенастраивая. Даже не знаю с ним это связано или с чем-то другим. Остальные ссылки остались без изменений.

  20. У меня вдруг страница сайт/about стала показывать 404, а доступной стала по сайт/page/about. Ничего нигде не менял. Разве что установил плагин Friendly_urls, но посмотрел настройки и отключил, ничего не перенастраивая. Даже не знаю с ним это связано или с чем-то другим. Остальные ссылки остались без изменений.

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

  21. У меня есть mso_config.php-distr и в нем тот код. Переименовал файл в .php. Раскомментил те 2 строки, Поставил в строке с no_slug NO, но ничего не изменилось. Поменял на yes и страница стала открываться по сайт/about. Но и по сайт/page/about тоже. Как теперь эту сунуть в 404? Другие предустановленные страницы открываются как надо без /page/, а с ним 404.

  22. У меня есть mso_config.php-distr и в нем тот код. Переименовал файл в .php. Раскомментил те 2 строки, Поставил в строке с no_slug NO, но ничего не изменилось. Поменял на yes и страница стала открываться по сайт/about. Но и по сайт/page/about тоже. Как теперь эту сунуть в 404? Другие предустановленные страницы открываются как надо без /page/, а с ним 404.

    Денис, вам надо как-то уже определиться - вам нужна возможность открывания страниц только по slug или не нужна? Если вы включаете возможность обращаться к страницам по синониму ($config['mso_permalink_no_slug'] = "yes"), то все страницы заисей будут доступны по двум адресам - с /page/ и без него. Если синонимы вам не нужны, то запретите их в конфиге перестаньте обращаться к /page/about по адресу /about! grin Для этого нужно изменить настройки меню и поставить правильный адрес - /page/about

  23. Если синонимы вам не нужны, то запретите их в конфиге перестаньте обращаться к /page/about по адресу /about! grin Для этого нужно изменить настройки меню и поставить правильный адрес - /page/about

    А разве сразу после установки было не сайт/about?

    Сейчас вернул всё как было и открывается только с /page/

    У меня тот файл изначально назывался mso_config.php-distr и сайт работал. Его нужно переименовывать в mso_config.php или нет? Сайт работает и в том и в том случае.

  24. А разве сразу после установки было не сайт/about?

    Было и есть. Сразу после установки. Но сейчас у вас могут где-то в глубине зависнуть настройки, которые влияют на поведение сайта. Без препарирования пациента мне сложно сказать что именно происходит. Если на сайте ещё ничего нет, то проще всё переустановить.

    У меня тот файл изначально назывался mso_config.php-distr и сайт работал. Его нужно переименовывать в mso_config.php или нет? Сайт работает и в том и в том случае.

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