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

/ Просмотров: 9955

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

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

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

Спасибо.

Комментариев: 25 RSS

Тенгиз, во-первых, спасибо за пожелания проекту 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

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

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

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

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

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

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

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

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

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

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

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

было:

$link = '

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

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

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

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

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

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

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

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

А обратно?

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

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

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

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

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

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

Хорошо!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Спасибо!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня есть 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

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

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

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

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

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

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

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

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