Просмотр темы - "как реализовать чпу через .htaccess ?"

  > Список тем > как реализовать чпу через .htaccess ? Новая тема

Автор Текст
MyPlants

 0 
Пользователь
Послать ЛС
как реализовать чпу через .htaccess ? - 10:13:28 11 Сентябрь 2012 Профиль
Всем привет! Поискал по форуму данный вопрос но не нашел. чпу через .htaccess как?
Вот надыбал пример такой в инете.
RewriteBase /
RewriteRule ^cat/([0-9]+)/page/([0-9]+).([A-Za-z]+).html$ arhive.php?cid=$1&page=$2&author=$3.

Но так и не понял как его применить для ссылок моего вида
http://styl...ule=gallery
http://styl...le=sendmail
http://styl...d=internova
И вообще будет ли работать этот чпу на релоаде?

Den1xxx

 43 
Модератор
Послать ЛС
12:05:35 11 Сентябрь 2012 Профиль
MyPlants, у Вас симпатичный сайт;)
Но там я вижу пару недочетов:
1. Взяли не последнюю версию и потом может быть "больно" обновляться.
Потому что — смена кодировок. Подумайте — может пока контента немного, переконвертировать?
Заметьте — скрипт разворачивания картинок не срабатывает в галерее при такой кодировке, а это минус.
2. Если уж делать каталог на основе галереи, то нужно в переводах подменить и "картинки" на "продукция" и "Все размеры" на "Размеры картинок".
3. Поиск не ищет, если не залогинен. Вообще-то стандартный поиск по галерее вообще не ищет, так что не уверен что он там пригодится;)
А так молодец, стильно и оргинально. Это доказывает, что даже с базовым функционалом можно сделать вполне неплохой коммерческий сайт:)

По сути вопроса.
ЧПУ так навряд ли получится сделать. Чтобы сделать его по-человечески, нужно продумать класс, который заменял бы запрошенный адрес по какому-то алгоритму.
Ну а потом уже и делать как надо.
Допустим выписать в столбик возможные ссылки и как хотите их поменять:
?module=pages -> /pages
?module=pages&id=internova -> /pages/internova
?module=gallery&keyword=Угол Турин -> /gallery/Угол Турин

И так далее.
И потом уже, поставив задачу, можно сесть и написать регулярку
Только делается она не только в .htaccess, но и в движке.
Например — направляем все запросы на index.php, а там заменяем:

в .htaccess
Код:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
в index.php
Код:
$arr_requests = (!empty($_SERVER['REQUEST_URI'])?explode('/',$_SERVER['REQUEST_URI']):array('',$_GET['module'],$_GET['id']));
$_GET['module'] = $arr_requests[1];
$_GET['id'] = $arr_requests[2];
//а здесь далее выводим модуль с помощью show_window($title,$text);
Вкратце суть метода: не объявленные из-за ЧПУ $_GET переменные объявляем сами, и модуль "ничего не заметит" при его вызове. То есть сработает как старая навигация, так и ЧПУ — одинаково.

Это примерно код для одного модуля — pages.
Придется учесть все случаи для написания ЧПУ — ведь может быть не id а keywords и так далее.
И сделать замену ссылок при выводе каждого модуля.
В общем это еще целый класс писать надо;)

Имейте в виду: с windows-1251 в строке адреса могут быть большие проблемы.
Собственно они уже есть с этой кодировкой — jQuery не работает с ней должным образом.

PS/ Дубликат темы уничтожен.

GavPosad

 0 
Пользователь
Послать ЛС
12:18:32 17 Июнь 2014 Профиль
Есть ли у кого готовые файлы (или в виде модуля), для 1.5.3 ?

Den1xxx

 43 
Модератор
Послать ЛС
19:23:52 17 Июнь 2014 Профиль
Цитата:
Есть ли у кого готовые файлы
Файлы для чего?

css

 0 
Пользователь
Послать ЛС
16:23:15 27 Февраль 2015 Профиль
Поскажите, пожалуйста, чпу вообще никак нельзя организовать в этой кмс? Просто, она супер подходит под поставленные передо мной задачи, но отсутствие чпу сводит все достоинства к нулю. sad

Den1xxx

 43 
Модератор
Послать ЛС
18:30:31 27 Февраль 2015 Профиль
Цитата:
Поскажите, пожалуйста, чпу вообще никак нельзя организовать в этой кмс? Просто, она супер подходит под поставленные передо мной задачи, но отсутствие чпу сводит все достоинства к нулю.
Ну я же описал выше что можно и даже описал как?
Код движка открыт. Лицензия позволяет.
Ну так делайте?

Комментировать

Вы не залогинены!