Добрый вечер, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 SX CMS / Основная тема
         Seo mod rewrite

Похожие темы

Seo mod rewrite


События Вторник, 22.03.2011, 18:38

IKZOKZ

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 131
Регистрация: 16.04.2010
Город: IKZOKZ
Вопрос к реврайтам

Веду на сайте два языка.
Когда создаю карту сайта xml получаю
Код
_http://www.domain.ru/shop/show-product/5055/14/kniga/
_http://www.domain.ru/shop/show-product/5055/14/book/

Это насколько понимаю не эффективно, то есть для поисковика это две одинаковые страницы хоть и содержание разное.
Поисковик сканирует сайт на том языке, на котором сайт, то есть главный язык, а сессии ему по барабану.
Эффективное решение думаю только в реврайтах.
Подскажите, что вправить, чтобы вот так в sitemap.xml выглядело
Код
_http://www.domain.ru/shop/show-product/5055/14/kniga/ru/
_http://www.domain.ru/shop/show-product/5055/14/book/en/

PHP-код
_http://www.domain.ru/index.php?p=shop&action=showproduct&id=5055&cid=14&pname=kniga&lang=ru
_http://www.domain.ru/index.php?p=shop&action=showproduct&id=5055&cid=14&pname=book&lang=en

Status-X 1.03a24




Отредактировано IKZOKZ: 22.03.2011, 18:45:12

Пользователь офлайн
События Вторник, 22.03.2011, 20:04

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
К сожалению простого решения не вижу, серверу ведь тоже чихать на сессии, по этому ленг уже должен быть прописан в урле до обработки чпу.
То есть например lang=ru, и это должно быть дописано к каждой ссылке, а вот какой ланг это уже берется из сессии или из списка доступных языков. И только тогда уже применяются правила реврайта. Вот как раз реврайта просто поправить добавив лишь одно правило после основной обработки, сложность переделывать все ссылки в шаблоне и скриптах.

Но за поднятый вопрос благодарю, возьму на вооуружение в Статусе 2, там правда все проще, там вообще все ссылки стандартизированы, работают через роутер и сразу имеют вид /../../../../


Благодарности IKZOKZ
Пользователь офлайн
События Понедельник, 03.09.2012, 02:49

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Вопрос по ссылкам
В первой версии изменения типа урлов не будет.
Во второй роутер по умолчанию работает простой пример http://домен/модуль/категория/идентификатор
Но можно добавлять свои правила как статические, то есть адрес заменяется на конкретно указаный, так и динамические, которые работают на основе масок (регулярные выражения), даже с автоматическими субдоменами прекрасно работает
Так что с адресом можно сделать из админки все что угодно


Пользователь офлайн
События Воскресенье, 17.03.2013, 22:49

Yrok

Группа: Пользователь
Ранг: Новичок
Cообщений: 27
Регистрация: 16.01.2012
Город: Минск
Жаль
Да, жаль и вправду, я бы при некоторых доработках её покупал бы для проектов (клиенты просят толковые URL, а я им могу только посоветовать не использовать Status-x для их сайта).

Если бы от меня что-то зависело - хотел бы внести изменения в status-x:
1. ЧПУ - заменить на адекватные (без циферок и попроще, лучше со статикой причём во всех модулях)
2. Изменить систему заполнения meta тегов (сделать сразу в редакторе контента)
3. Сделать возможность распределения модулей-блоков как в joomla, чтобы можно было вешать туда статический и динамический контент
4. Сделать по-умолчанию толковую галерею (как правило приходится всегда привинчивать сторонние, типа lightbox, если бы сразу была такая впаяна дополнительно, было бы шикарно)
5. Добавить модуль статического контента (не страниц, а именно контента)
6. Допилить модуль рассылки (одного поля мало иногда, нужно настраиваемое количество)

Всё остальное вполне устраивает.
Пользователь офлайн
События Воскресенье, 04.01.2015, 01:06

Yulo

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 241
Регистрация: 26.10.2009
Город: Тюмень
Возможно ли без лишних заморочек изменить ЧПУ? Мои эксперименты ни к чему не привели.
Чтобы вот из этого правила:
RewriteRule ^content/([0-9]+)/([-_A-Za-z0-9-]+)/([0-9]+)/([^/]*)$ index.php?p=content&id=$1&name=$2&area=$3 [NC,L]

Получалось следующее:
RewriteRule ^NAME index.php?p=content&id=4&name=NAME&area=1 [NC,L]

То есть берется только поле name=NAME.
Где и как генерируется ссылка в Статических страницах, можно ли изменить так же без заморочек. Что бы ссылки в базе искались не по id а по name.
Я в php не умею. (=
Пользователь офлайн
События Воскресенье, 04.01.2015, 03:42

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Цитата
Автор: Yulo
Возможно ли без лишних заморочек изменить ЧПУ? Мои эксперименты ни к чему не привели.
Чтобы вот из этого правила:
RewriteRule ^content/([0-9]+)/([-_A-Za-z0-9-]+)/([0-9]+)/([^/]*)$ index.php?p=content&id=$1&name=$2&area=$3 [NC,L]

Получалось следующее:
RewriteRule ^NAME index.php?p=content&id=4&name=NAME&area=1 [NC,L]

То есть берется только поле name=NAME.
Где и как генерируется ссылка в Статических страницах, можно ли изменить так же без заморочек. Что бы ссылки в базе искались не по id а по name.
Я в php не умею. (=


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

И у тебя не получалось потому что нужно работать с парой, регулярка и правило RewriteRule

Проще вариант написать правила под конкретные адреса страниц, такое не раз делал и страниц таких статических не так много

Итак участвуют два класса class.Rewrite.php - формирует чпу ссылку в шаблонах, class.Htaccess.php - формирует правило для файла htaccess
Сейчас мы пишем правило для статических страниц, и что бы понятно куда вставлять код, точка для вставки в обоих файлах ниже конструкции

PHP-код
if (get_active('content')) {


Например мы создали статическую страницу О компании, ее адрес выглядит так http://www.status-x.ru/index.php?p=content&id=3&name=o-kompanii&area=1, а хотим http://www.status-x.ru/content/o-kompanii/, или еще круче http://www.status-x.ru/o-kompanii/

PHP-код
//class.Htaccess.php
//http://www.status-x.ru/content/o-kompanii/
$rew[] = 'RewriteRule ^' $arr['content'] . '/o-kompanii([^/]*)$ index.php?p=content&id=3&name=o-kompanii&area=1 [NC,L]';

//http://www.status-x.ru/o-kompanii/
$rew[] = 'RewriteRule ^o-kompanii([^/]*)$ index.php?p=content&id=3&name=o-kompanii&area=1 [NC,L]';


PHP-код
//class.Rewrite.php
//http://www.status-x.ru/content/o-kompanii/
$tpl preg_replace('/index.php([?])p=content&id=3&name=o-kompanii&area=1/i'$arr['content'] . '/o-kompanii/'$tpl);

//http://www.status-x.ru/o-kompanii/
$tpl preg_replace('/index.php([?])p=content&id=3&name=o-kompanii&area=1/i''o-kompanii/'$tpl);


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

Вариантов решения много, но тогда уже нужны знания php


Благодарности Yulo
Пользователь офлайн
События Воскресенье, 04.01.2015, 21:49

Yulo

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 241
Регистрация: 26.10.2009
Город: Тюмень
А для чего эта конструкция ([^/]*)$ с ней не работает, без нее работает?
Собственно все тоже самое можно сделать проще. Просто отключить автообновление htaccess в админке и напрямую в htaccess писать правила.
Ты написал что class.Rewrite.php формирует чпу ссылку в шаблонах. Но ссылки по прежнему формируются по старому, попробовал с новостями и стат. страницами. Или может я не так понял тебя.
Пользователь офлайн
События Воскресенье, 04.01.2015, 21:59

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Цитата
Автор: Yulo
А для чего эта конструкция ([^/]*)$ с ней не работает, без нее работает?
Собственно все тоже самое можно сделать проще. Просто отключить автообновление htaccess в админке и напрямую в htaccess писать правила.
Ты написал что class.Rewrite.php формирует чпу ссылку в шаблонах. Но ссылки по прежнему формируются по старому, попробовал с новостями и стат. страницами. Или может я не так понял тебя.


В данном варианте в принципе можно ([^/]*)$ можно заменить на /$

Если напрямую писать в хтагес, это будут только правила для перенаправления, а вот формирование измененных ссылок все равно происходит в class.Rewrite.php


Благодарности Yulo
Пользователь офлайн
События Воскресенье, 04.01.2015, 22:36

Yulo

Группа: Пользователь
Ранг: Продвинутый
Cообщений: 241
Регистрация: 26.10.2009
Город: Тюмень
Да все работает с class.Rewrite.php и даже RSS формирует ссылку как надо, это я чуток с ссылкой накосячил.
Еще один вопрос по поводу времени публикации.
Какими средствами делается отсчет времени (пример: сообщение отправлено "4 минуты назад" или Новость опубликована "1 час назад" )
Почитал смарти про форматы времени, но ничего подобного там не нашел. Весь интернет перерыл. Я так понимаю это на php надо написать и уже в шаблон вставлять?
Пользователь офлайн
События Понедельник, 05.01.2015, 00:52

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Цитата
Автор: Yulo
Да все работает с class.Rewrite.php и даже RSS формирует ссылку как надо, это я чуток с ссылкой накосячил.
Еще один вопрос по поводу времени публикации.
Какими средствами делается отсчет времени (пример: сообщение отправлено "4 минуты назад" или Новость опубликована "1 час назад" )
Почитал смарти про форматы времени, но ничего подобного там не нашел. Весь интернет перерыл. Я так понимаю это на php надо написать и уже в шаблон вставлять?


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


Благодарности Yulo
Пользователь офлайн


Похожие темы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте

Пользователей: 0, Гостей: 1

Поисковые боты: 219
Bot(203), BingBot(2), Googlebot, oBot(13)
 Статистика форума

  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: wonad81290
 Дни рождения

SHNLV (31)
Copyright © 2009 - 2024 SX All rights reserved | Powered by SX CMS 1.06 UTF | Контакты