Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mod_rewrite
 
 автор: Albatros   (10.06.2009 в 08:14)   письмо автору
 
 

Допустим есть в адресной строке url вида site.ru/2009/07/15. После работы .htaccess со следующим кодом:
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/?$ index.php?year=$1&month=$2&day=$3

т.е. все впринципе хорошо. Но что делаьть, когда url меняется на site.ru/2009/07/15/header_news или даже на такой site.ru/arch/2007. Т.е. получается правила для замены постоянно меняются - как это все учитывать в .htaccess? Все урлы разбирает один файл - index.php.

  Ответить  
 
 автор: Trianon   (10.06.2009 в 08:50)   письмо автору
 
   для: Albatros   (10.06.2009 в 08:14)
 

кем меняется?

  Ответить  
 
 автор: Albatros   (10.06.2009 в 09:01)   письмо автору
 
   для: Trianon   (10.06.2009 в 08:50)
 

нууу... просто по ссылкам, т.е. на главной странице есть календарик, где выбирается месяц, год и день. После, выводится список материалов за выбранную дату, ну а по клику на заголовок - непосредственно сам материал. Код же в файле index.php, в зависимости от наличия или отсутствия переменных в url, инклюдит соответствующие скрипты.

  Ответить  
 
 автор: Trianon   (10.06.2009 в 09:19)   письмо автору
 
   для: Albatros   (10.06.2009 в 09:01)
 

Значит URLs нужно формировать более регулярным образом..
Ну и/или прописать правила для всех используемых вариантов.

  Ответить  
 
 автор: Albatros   (10.06.2009 в 09:43)   письмо автору
 
   для: Trianon   (10.06.2009 в 09:19)
 

Если прописывать все варианты(ну хотя бы два):
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/?$ index.php?year=$1&month=$2&day=$3
RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z])/?$ index.php?year=$1&month=$2&day=$3&header=$4

то нужно ставить условие: по какому из этих вариантов будет происходить преобразование. Как его записывать?

  Ответить  
 
 автор: GeorgeIV   (10.06.2009 в 11:09)   письмо автору
 
   для: Albatros   (10.06.2009 в 09:43)
 

передавай всю строку в index.php и там уже разбирай урл

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования