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

Форум Apache

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

 

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

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

тема: ЧПУ + php
 
 автор: OLi   (02.12.2011 в 22:24)   письмо автору
 
 

я принимаю GET параметр так $page = intval($_GET['page']-1);

URL такой http://site.com/poisk_firm_po_alfavitu/B/6

ЧПУ таков: RewriteRule ^poisk_firm_po_alfavitu/([^/]*)(/([0-9]+))?$ firms.php?ch=$1&page=$2

как видно, последний параметр в URL есть page
 
при таком раскладе все равно не получаю echo $_GET['page']; на странице

  Ответить  
 
 автор: cheops   (02.12.2011 в 22:26)   письмо автору
 
   для: OLi   (02.12.2011 в 22:24)
 

А в логах что-нибудь интересное есть (может перехватывается другим правилом)? Помоему должно быть $3, а не $2 (но в любом случае должно выводиться).

  Ответить  
 
 автор: OLi   (02.12.2011 в 22:34)   письмо автору
 
   для: cheops   (02.12.2011 в 22:26)
 

В логах ничего не записано..
Есть еще одно правило вида:
RewriteRule ^poisk_firm_po_alfavitu/([^/]*)/? firms.php?ch=$1 [L,E]
RewriteRule ^poisk_firm_po_alfavitu/([^/]*)(/([0-9]+))?$ firms.php?ch=$1&page=$2

  Ответить  
 
 автор: cheops   (02.12.2011 в 22:51)   письмо автору
 
   для: OLi   (02.12.2011 в 22:34)
 

А логи mod_rewrie включены (обычно там на каждый чих, довольно много информации пишется)?

  Ответить  
 
 автор: OLi   (02.12.2011 в 22:53)   письмо автору
 
   для: cheops   (02.12.2011 в 22:51)
 

А как их включить, этого я не знаю...

  Ответить  
 
 автор: cheops   (02.12.2011 в 23:09)   письмо автору
 
   для: OLi   (02.12.2011 в 22:53)
 

В виртуальный хост нужно добавить следующие строки
    RewriteLog "logs/localhost-rewrite.log"
    RewriteLogLevel 3

  Ответить  
 
 автор: Sfinks   (02.12.2011 в 23:35)   письмо автору
 
   для: OLi   (02.12.2011 в 22:34)
 

Второе правило перехватывается первым. Нужно либо поменять их местами, либо исправить первое так:
RewriteRule ^poisk_firm_po_alfavitu/([^/]*)/?$ firms.php?ch=$1 [L,E]

А во втором все-таки:
RewriteRule ^poisk_firm_po_alfavitu/([^/]*)(/([0-9]+))?$ firms.php?ch=$1&page=$3

И зачем во втором правиле (/([0-9]+))? скобки два раза? Если поменяете местами правила, то будет первое вторым перехватываться.
И зачем в первом правиле E без параметров? В этом ваще смысла нет.
Короче самое правильное будет так, я думаю:

RewriteRule ^poisk_firm_po_alfavitu/([^/]*)/([0-9]+)/?$ firms.php?ch=$1&page=$2 [L]
RewriteRule ^poisk_firm_po_alfavitu/([^/]*)/?$ firms.php?ch=$1 [L]

  Ответить  
 
 автор: OLi   (03.12.2011 в 03:03)   письмо автору
 
   для: Sfinks   (02.12.2011 в 23:35)
 

Спасибо за ответы, последнее сработало..

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

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