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


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

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

Seo mod rewrite


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

Status-X

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

Поисковые боты: 15
Inktomi Slurp, oBot(2), Yandex, Googlebot(7), BingBot(3), Unknown Bot

 Статистика форума


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

 Дни рождения


MaximK (55), slavutich7 (28)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты