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


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

Похожие темы  |  Печать страницы

Seo mod rewrite


События Воскресенье, 04.01.2015, 03:42

SX

Группа: Администратор
Cообщений: 2902
Регистрация: 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


Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

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

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

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

Поисковые боты: 50
oBot(38), Yandex, Bot(2), BingBot(2), Googlebot(4), Crawler(2), Inktomi Slurp
 Статистика форума

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

serfer (50), AlexU (47), nikonrus (45), zarema (39), lostnext (29), Mr.Sawich (22)
Печать | Copyright © 2009 - 2017 SX All rights reserved | Powered by SX CMS 1.05 | Контакты