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

Форум Apache

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: ЧПУ + php

Сообщения:  [1-8] 

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

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

  Ответить  
 
 автор: 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]

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

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

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

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

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

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

  Ответить  
 
 автор: 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:26)   письмо автору
 
   для: OLi   (02.12.2011 в 22:24)
 

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

  Ответить  
 
 автор: 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']; на странице

  Ответить  

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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