Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ЧПУ 
:(
    Опции темы
Opik
Дата 20.6.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



mod_rewrite адназначна.
PM MAIL Skype   Вверх
Mal Hack
Дата 20.6.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Причем...
/index.html главная странца.
/1.html и т.д. - страницы материала (тоже надо делаьть)
/print.html -версия дл печати.
И еще одна фишка.
Вот есть главная категория, в ней ссылки на подкатегории:
/subcat1.html
/subcat2.html
А уже в категориях сслки на материалы:
/subcat2/mat1.html
/subcat2/mat2.html
PM ICQ   Вверх
Irokez
Дата 20.6.2005, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



а может просто:
Цитата
/ главная странца.
/1/ - страницы материала (тоже надо делаьть)
/print/ -версия дл печати.
И еще одна фишка.
Вот есть главная категория, в ней ссылки на подкатегории:
/subcat1/
/subcat2/
А уже в категориях сслки на материалы:
/subcat2/mat1/
/subcat2/mat2/

PM   Вверх
Mal Hack
Дата 20.6.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Пооисковикам лучше html ки гнать. К тому же это просто строка которая разбивается по / и последний по .
PM ICQ   Вверх
Irokez
Дата 20.6.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(Mal @ 20.6.2005, 19:11)
Пооисковикам лучше html ки гнать

по-моему им уже давно пофигу..
просто ссылка www.example.com/en/about/ на мой взгляд выглядит лучше чем www.example.com/en/about.html и набирать легче
PM   Вверх
Mal Hack
Дата 20.6.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Irokez @ 20.6.2005, 20:14)
по-моему им уже давно пофигу..

Большинству - да.

Цитата(Irokez @ 20.6.2005, 20:14)
просто ссылка www.example.com/en/about/ на мой взгляд выглядит лучше чем www.example.com/en/about.html и набирать легче

А мне вот наоборот с html более, так сказать циыильной кажется.
PM ICQ   Вверх
IZ@TOP
Дата 20.6.2005, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



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

Код

/index.html
/my_category.html
/my_category/my_category_document.html
/sub_category/my_document_name.html


Если где то в документах идет постраничная разбивка, тогда нумеруем все это дело
Код

/my_category/sub_category/my_document_name-1.html
/my_category/sub_category/my_document_name-2.html
/my_category/sub_category/my_document_name-3.html


и т.п.



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Irokez
Дата 20.6.2005, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



а вообще будет круто, если можно будет настраивать вид ЧПУ.. к примеру:
{domain}/{cat}/{subcat}/{doc}.html или
{domain}/{cat}/{subcat}/{doc}/
PM   Вверх
skalex
Дата 21.6.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



В своей CMF я делаю так:

1. через mod_rewrite все запросы на направляются на index.php (его я называю HTTP-контроллером)

2. есть xml-файл описания всех урлов и соответсвующий им последовательный процесс работы контроллеров:

Пример такого xml-файла:
Код
<scheme>
   <url regexp="^(index\.htm)?$">
      <process name="index" />
      <process name="skin">
         <var name="name" value="main" />
      </process>
   </url>
   <url regexp="^news/([1-9][0-9]*)\.htm$">
      <process name="news">
         <var name="news_id" value="$1" />
      </process>
      <process name="skin">
         <var name="name" value="work" />
      </process>
   </url>
   <url regexp="^desktop/(.+?)\.htm$">
      <process name="auth" />
      <process name="desktop" />
      <process name="skin">
         <var name="name" value="work" />
      </process>
   </url>
   <!-- ... ... ... -->
   <url regexp="^(.+)$">
      <process name="static">
         <var name="path" value="$1" />
      </process>
      <process name="skin">
         <var name="name" value="work" />
      </process>
   </url>
</scheme>


process - это контроллер. Имея соответсвующий метод он сам знает как генерировать URI, поэтому я вообще никогда не задумываюсь об этом.

В данном случае схемы постоения URL - произвольны, а в CMS, которая будет базироваться на этой концепции будет иметь абстрактный контроллер, который будет реализовывать единую схему для любых разделов сайта.

Например, все URL для реального сайта будут иметь вид:
http://www.example.com/контроллер/режим[-par1-par2-...-parN].htm
или
http://www.example.com/режим[-par1-par2-...-parN].htm

Я считаю такой подход крайне удобным. smile
PM   Вверх
Opik
Дата 25.6.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Mace
index.php показать можешь?)
Добавлено @ 10:48
Мне нравится вариант Mace, кому то есть что добавить?
PM MAIL Skype   Вверх
Dexter
Дата 25.6.2005, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

Репутация: нет
Всего: 4



Цитата
Мне нравится вариант Mace


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


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
skalex
Дата 25.6.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Opik, а в index.php собственно ничего и нету, кроме подключения "ядра", его создания, запуска метода обработки запрошенного URL. Код показывать не имеет смысла, т.к. надо прикладывать код всего ядра. Могу рассказать как все это работает в моей реализации.

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

Вся работа веб-приложения происходит по этапам:

1. Инициализация
Создание ядра, анализ (парсинг) конфигурационного XML-файла и сохранение его данных, подключение дополнительных модулей и пр.

2. Обработка запроса
Последовательный поиск нужной ветки в схеме URL веб-приложения (в блоке <scheme/>) в зависимости от запрашиваемого URL. Имя ветки (атрибут regexp) - это регулярное выражение. С помощью него можно организовать удобную передачу параметров компонентам. Далее происходит последовательная отработка контроллеров (<process/>). Контроллер в связке с необходимыми компонентами может либо генерировать контент, либо произвести переадресацию, либо еще что-нибудь (в зависимости от конкретных задач). Как правило последним в этой цепочке идет контроллер, который получает сгенерированный ранее контент и выводит его в контексте обвязки сайта, за которую сам собственно и отвечает.

3. Завершение работы
Формальный этап, где отрабатывают деструкторы компонентов и уничтожение ядра.
PM   Вверх
Mal Hack
Дата 25.6.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Mace @ 21.6.2005, 15:12)
2. есть xml-файл описания всех урлов и соответсвующий им последовательный процесс работы контроллеров:

А зачем это?
PM ICQ   Вверх
skalex
Дата 25.6.2005, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: нет
Всего: 23



Цитата(Mal @ 25.6.2005, 15:21)
Цитата(Mace @ 21.6.2005, 15:12)
2. есть xml-файл описания всех урлов и соответсвующий им последовательный процесс работы контроллеров:

А зачем это?

Зачем что ?
Зачем xml-файл или зачем вся эта городушка ?

Когда пользователь запрашивает страницу нам надо знать какие контроллеры будут формировать ему ответ. Классический случай - два контроллера: первый - генерирует контент, второй - макет страницы. Но контроллеры могут и не генерировать контент, а производить какие-либо действия в зависимости от условий (например, перенаправлять пользователя на определенную страницу). Поэтому цепочка может состоять из любого кол-ва контроллеров.

Имея набор таких контроллеров, можно выстраивать их работу, привязывая к запрашиваемым страницам. Описание всей этой схемы мне показалось удобным в XML-формате (заодно и познакомился более детально smile).

Или имелось в виду что то другое ?
PM   Вверх
CyClon
Дата 8.12.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Не люблю я ваши ЧПУ ЖПУ и т.д.
По мне так:

http://site.ru/?page=about
http://site.ru/?page=conent&id=1
http://site.ru/?news=1 (Пага)
http://site.ru/admin.php?op=users

Вот это хорошо... Кстати, ненавижу, мля, когжа что-то вроде этого:
http://site.ru/stories/4to_takoe_html_i_s_...dyat/index.html
Или что тов этом роде... Нада по id делать ссылки на контент...


--------------------
user posted image
PM   Вверх
Mal Hack
Дата 8.12.2005, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Ну мало ли что тебе не нравится.
Ты кодишь не для себя, а для пользователей.
Им легче запоминать без ?...
PM ICQ   Вверх
borisvolfson
Дата 15.1.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.2.2005

Репутация: нет
Всего: 3



CyClon
При сохранении файла будет не удобно искать файл по id...
PM MAIL   Вверх
IZ@TOP
Дата 23.1.2006, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73





--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
rMaveric
Дата 9.8.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



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

Основная "проблема" - как человеку показать, то что он хочет и дать удобный механизм работы с системой.

Иными словами требований 3:

1. Удобное добавление различных разделов и их администрирование
2. Создание разделов на основе различных обработчиков
3. Удобное создание самих обработчиков (модулей)

Но при этом каждый из параметров должен быть независимым. пример общей схемы и принципов обработки.

Пример трех ссылок которые должны отобразиться обсалютно одинаково

http://www.articles.sitename.domain/pc-tec...ser.001374.html
http://www.sitename.domain/pc-tech/article...ser.001374.html
http://www.sitename.domain/articles/pc-tec...ser.001374.html

и CMS должна отобразить все три ссылки одинаково (при наличии всех нужных настроек).

З.Ы.
Если кого интересует могу описать подробно свое видение парсинга URL, а также связать с имеющимся механизмом вызова обработчиков (модулей), также могу предложить свой механизм с нуля.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Wowa
Дата 22.10.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(IZ@TOP @  20.6.2005,  18:20 Найти цитируемый пост)
Мне кажется что лучше все же не по id гнать категории и документы, а по алиасам, хотя можно учесть и тот и тот метод, кому как нравится.


Цитата(IZ@TOP @  20.6.2005,  18:20 Найти цитируемый пост)
/index.html
/my_category.html
/my_category/my_category_document.html
/sub_category/my_document_name.html

А нагрузка? ИМХО выборка по ИД из базы будет намного быстрее, чем выборка по алиасу.
PM WWW   Вверх
Semenov
Дата 23.10.2006, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.10.2006
Где: г. Набережные Чел ны

Репутация: нет
Всего: нет



По id будет быстрее, но, имхо, надо думать не только о скорости, также и о юзабильности. Еще нужно url`ы точить под поисковики, т.к. у яндекса и гугла в планах урлы их транслитизировать, для улучшения поиска. Т.е. , к примеру, /o_nas.html - это есть "о нас", но это, как уже сказал, в будущем. Но нужно быть далновидными. Если уж взяли xslt, то почему же ссылки не делать под будущее?
PM MAIL WWW ICQ   Вверх
redlinesoft
Дата 24.1.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2005

Репутация: нет
Всего: нет



Возвращаясь к вопросу о вариантах с .html  или без онного, то стоит взглянуть на сайты того же Лебедева - все ЧПУ прописываются без .html... А раз уж он напрямую сотрудничает с Яндексом, то сомневаться в верности данного подхода не приходиться.

Это сообщение отредактировал(а) redlinesoft - 24.1.2007, 20:24
PM MAIL   Вверх
IZ@TOP
Дата 5.2.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Цитата(Wowa @  22.10.2006,  15:34 Найти цитируемый пост)
А нагрузка? ИМХО выборка по ИД из базы будет намного быстрее, чем выборка по алиасу. 

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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Wedmer
Дата 16.1.2009, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.3.2008

Репутация: нет
Всего: нет



{domain}/{langcode}/{param1}/{param ....x}/

причем индексный скрипт должен обрабатывать $_SERVER['REQUEST_URI'] а не составной запрос.
Так мы избавимся от головной боли при использовании других httpd.
PM   Вверх
awers
  Дата 14.2.2009, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 3
Всего: 31



Вот кусочек документа.

Цитата

Роутинг URL

Часть №1. «Порядок»

А. Регламентом определяется тип роутинга для каждого конкретного проекта
Б. Согласно регламенту реализуется роутинг


Часть №2. «Средства реализации»

А. Apache HTTP server. Подразумевается использование файла .htaccess
Б. PHP. Нежелательно использование в «чистом виде»
В. Смешанный тип (Apache + PHP)


 Часть №3. «Глобальные типы роутинга»

А. Роутинг отсутствует. Т.е. для получения страницы параметры передаются открытым GET запросом. К примеру — www.example.org/index.php?module=shop&catalog=64554
* Замечание: этот тип устарел и является наиболее уязвимым с точки зрения безопасности

Б. Каталожный роутинг. К примеру — www.example.org/shop/catalog/64554

В. Односложный роутинг. К примеру — www.example.org/shop-catalog-64554.html
В. 1. К минусам данного типа можно отнести ограничение в используемых именах модулей, названиях страниц и пр.
В. 2. Для этого типа роутинга необходимо дополнительно регламентировать «разделитель»

Часть №4. «Дополнительный тип роутинга»

Самым предпочтительным типом роутинга автор считает гибридный. Роутинг делится на два этапа:
1)    Первичный роутинг: на основании глобального роутинга выделяется вызываемый модуль
2)    Вторичный роутинг: модуль сам оперирует дальнейшей обработкой запроса

Преимущества данного способа заключаются в максимальной гибкости в рамках конкретного проекта.



В заключении этого документа автор считает нужным предложить использование следующей модели:

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


За сим откланяюсь, Адам Адамович Четвёркин.
14.02.2009



ВотЪ )

Это сообщение отредактировал(а) awers - 14.2.2009, 09:16
PM MAIL WWW ICQ Skype   Вверх
fesor
Дата 17.7.2009, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: нет
Всего: 4



Можно изложить свои идеи касательно реализации чпу?

Не проще ли реализовать систему маршрутов (по аналогии скажем с YII Framework). Это возможно не такой быстрый способ как mod_rewrite (хотя кто знает) однако появляется позможность проверять $_GET данные или формировать этот массив самостоятельно что должно повысить уровень безопасности.

Также это даст возможность пользователям изменять шаблоны путей.

По поводу того что доступ к страницам должен быть организован по алиасам - тут вопрос спорный. Доступ к категориям без сомнений должен быть по алиасам. Также как и к статическим страницам. Но допустем в новостной ленте использовать это имхо бред. НИРАЗУ невидел чтобы кто-то вводил название топика. Возможно такие люди и есть но назвать это дружелюностью для пользователя я не могу. Если имеются большие объемы контента то навигацию проще производить исключительно по ID.
PM MAIL WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Vingrad CMS | Следующая тема »


 




[ Время генерации скрипта: 0.1923 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.