2010-03-28 1 views
2

Я пытаюсь сделать чистый URL-адрес для блога на динамическом веб-сайте, но я думаю, что проблема в том, что я не знаю, как планировать схему сайта.Динамический mod_rewrite или как планировать динамический веб-сайт

Я читал о том, как использовать mod_rewrite, и все, что я нашел, это как сделать «http://www.website.com/?category&date&post-title» на «http://www.website.com/category/date/post-title». для меня это работает o.k.

Проблема в том, что если мой URL-адрес выглядит «http://www.website.com/blog/?id=34», этот метод не будет работать, насколько я его понял.

Итак, у меня есть два вопроса: 1. Есть ли способ использовать mod_rewrite (возможно, прочитанный из файла txt), чтобы прочитать заголовок сообщения моего блога и переписать мой URL по дате и послезаголовку? 2. Должен ли я переписать свой веб-сайт для запроса данных из одного индексного файла на главной странице и использовать mod_rewrite для написания хорошего URL-адреса? Должен ли я запрашивать дату и заголовок сообщения, а не только идентификатор сообщения?

ответ

2
  1. mod_rewrite используется для перезаписи запросов и это не имеет ничего общего с URLs. Вы должны изменить URL-адреса руками.
  2. да, это наиболее распространенная практика, для запроса данных из одного индексного файла
    нет, вы не можете использовать mod_rewrite, чтобы написать хороший URL
    да, идентификатор должен присутствовать в URL вместе с заголовком. ваш движок просто отбрасывает название и использует только id для извлечения статьи.

Взгляните на SO URLs для примера

+0

Спасибо 2 # Это имеет смысл ... и я не использую mod_rewrite, чтобы написать хороший URL-адрес, я пишу хороший URL-адрес и mod_rewrite перенаправляет страницу за кулисами. –

0

RewriteMap позволяет выполнять все виды динамической перезаписи (текстовый файл, скрипт и т. Д.).

1

Что вы говорите, что обычно называют как маршрутизации и много примеров существует различных способов сделать это с PHP. Наиболее распространенный подход использует шаблон frontcontroller, что означает, что в простом случае переписывание всех URL-адресов в один файл php, а затем определение этого файла для динамического отображения содержимого на основе URL-адреса.

Самые популярные фреймворки PHP (CakePHP, Symphony, Codeigniter и т. Д.) Имеют в них код маршрутизации, который вы могли бы использовать или могли бы служить источником вдохновения. В качестве альтернативы эта статья охватывает множество основ, если вы хотите сделать это самостоятельно: http://www.phpaddiction.com/tags/axial/url-routing-with-php-part-one/

+0

ссылка на phpaddiction.com нарушена – milovanderlinden

+0

mmm, похоже, был временным сбоем, теперь я вижу сайт. – Garethr