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

Форум Apache

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

 

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

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

тема: RewriteCond %{QUERY_STRING} Дополнительные GET параметры
 
 автор: Den*s   (05.01.2013 в 20:39)   письмо автору
 
 

Здравствуйте.
имею ссылки вида
http://site.dev/catalog/Aksessuari_iPhone_44S

но на странице может быть много элементов, и нужно сделать постраничную навигацию
пытаюсь сделать так:


RewriteEngine on
RewriteBase /

RewriteCond %{QUERY_STRING} page=([0-9]*)

RewriteRule ^([a-zA-Z0-9_-]+)$ inner.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ inner.php?url=$1

...

RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ catalog.php?url=$1&url2=$2 [L]
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1&url2=$2 [L]

RewriteRule ^catalog/([a-zA-Z0-9_-]+)$ catalog.php?url=$1 [L]
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1 [L]

RewriteRule ^catalog/ /catalog.php?url=$1 [L]


не получается получить GET["page"], подскажите в чём причина

  Ответить  
 
 автор: cheops   (05.01.2013 в 21:21)   письмо автору
 
   для: Den*s   (05.01.2013 в 20:39)
 

Что-то никак не вижу у вас обращения к скобкам в
RewriteCond %{QUERY_STRING} page=([0-9]*)

$ - это скобки RewriteRule
% - это скобки RewriteCond
т.е. у вас где-то обязательно должно быть %1, если хотите передать значение из RewriteCond.

  Ответить  
 
 автор: Den*s   (05.01.2013 в 21:55)   письмо автору
 
   для: cheops   (05.01.2013 в 21:21)
 

Сделал вот так

RewriteCond %{QUERY_STRING} page=([0-9]*)

RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ catalog.php?url=$1&url2=$2 [L]
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1&url2=$2 [L]

RewriteRule ^catalog/([a-zA-Z0-9_-]+)$ catalog.php?url=$1&page=%1 [L]
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1&page=%1 [L]

RewriteRule ^catalog/ /catalog.php?url=$1 [L]


формирую ссылку типа
http://site.dev/catalog/Aksessuari_iPhone_44S/?page=123

Но пока не работает ...

  Ответить  
 
 автор: cheops   (06.01.2013 в 00:30)   письмо автору
 
   для: Den*s   (05.01.2013 в 21:55)
 

RewriteCond действует только на следующий RewriteRule. Перед RewriteRule может быть много директив RewriteCond, но одна директива RewriteCond не может обслуживать множество директив RewriteRule.
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ catalog.php?url=$1&url2=$2 [L] 
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1&url2=$2 [L] 

RewriteCond %{QUERY_STRING} page=([0-9]*) 
RewriteRule ^catalog/([a-zA-Z0-9_-]+)$ catalog.php?url=$1&page=%1 [L] 
RewriteCond %{QUERY_STRING} page=([0-9]*) 
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/$ catalog.php?url=$1&page=%1 [L] 

RewriteRule ^catalog/ /catalog.php?url=$1 [L]

  Ответить  
 
 автор: Den*s   (08.01.2013 в 22:06)   письмо автору
 
   для: cheops   (06.01.2013 в 00:30)
 

Спасибо, всё работает :)

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

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