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

Форум Apache

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

 

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

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

тема: Помогите разобраться с ЧПУ
 
 автор: 10100100   (26.01.2007 в 14:23)   письмо автору
 
 

в хтаццес прописал вот это:

Options +FollowSymlinks    
RewriteEngine On    
RewriteRule   ^cmsin/news/show_cat_ucat/([0-9]+)/([0-9]+)/?$  cmsin/news/show_cat_ucat.php?id_cat=$1&id_ucat=$2 [L]

данные не доходят до самого скрипта, тоесть переменные $Id_cat и $id_ucat пустые.
я так понимаю что я их неправильно принимаю, подскажите пожалуйста как их правильно принимать?!

или может быть ошибка в том что я не указываю конкретную дерикторию, сам сайт находится на локалхосте в папках www/SITENAME/cmsin/news/show_cat_ucat.php

не понимаю и всё - уже неделю не могу сообразить в чём ошибка.
всётаки думаю что не правильно принимаю данные - подскажите как это можно сделать правильно.

   
 
 автор: 10100100   (29.01.2007 в 09:48)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

никто не поможет? :(

   
 
 автор: cheops   (29.01.2007 в 12:46)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

Включите логгирование модуля mod_rewrite, добавив в виртуальный каталог следующие строки
    RewriteLog logs/rewrite.log
    RewriteLogLevel 9

Файл logs/rewrite.log должен существовать.

   
 
 автор: 10100100   (29.01.2007 в 13:42)   письмо автору
 
   для: cheops   (29.01.2007 в 12:46)
 

эм... виртуальный каталог это что? :)
тоетсь мне нужно добавить эти строки к моему коду который я указал выше?
я добавил - создал каталог Логс и файл в нём, но там пусто. ничего е меняется. может опять чегото длаю не так.

   
 
 автор: cheops   (29.01.2007 в 21:26)   письмо автору
 
   для: 10100100   (29.01.2007 в 13:42)
 

Виртуальный каталог - это контейнер <VirtualHost></VirtualHost> в конфигурационном файле httpd.conf, или дело на хостинге происходит?

   
 
 автор: 10100100   (30.01.2007 в 03:13)   письмо автору
 
   для: cheops   (29.01.2007 в 21:26)
 

нет нет - дело происходит н нахостинге пока что. понял щас буду искать виртуальный каталог и файл httpd.conf.

   
 
 автор: 10100100   (30.01.2007 в 03:19)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

такс, ого мы чего то покумекали и теперь вроде как должно работать, но вылазит ошибка 500, что надо делать? :)

   
 
 автор: cheops   (30.01.2007 в 10:25)   письмо автору
 
   для: 10100100   (30.01.2007 в 03:19)
 

500 ошибка - это ошибка синтаксиса одного из конфигурационного файла - как теперь выглядит файл .htaccess?

   
 
 автор: 10100100   (30.01.2007 в 12:20)   письмо автору
 
   для: cheops   (30.01.2007 в 10:25)
 


Options +FollowSymlinks    
RewriteLog logs/rewrite.log 
RewriteLogLevel 9
RewriteEngine On 
RewriteBase /
RewriteRule   ^cmsin/news/show_cat_ucat/([0-9]+)/([0-9]+)/?$  cmsin/news/show_cat_ucat.php?id_cat=$1&id_ucat=$2 [L]


думаю 2 строчки лишние :)

   
 
 автор: cheops   (30.01.2007 в 22:26)   письмо автору
 
   для: 10100100   (30.01.2007 в 12:20)
 

Строки
RewriteLog logs/rewrite.log  
RewriteLogLevel 9

не допустимы в конфигурационном файле .htaccess, из следует указывать в контейнере виртуального хоста.

   
 
 автор: 10100100   (31.01.2007 в 03:37)   письмо автору
 
   для: cheops   (30.01.2007 в 22:26)
 

строки удалил, теперь снова не передаются переменные скрипту. может я их не правильно принимаю? как это делать нужно?

   
 
 автор: cheops   (04.02.2007 в 11:39)   письмо автору
 
   для: 10100100   (31.01.2007 в 03:37)
 

Если не хотите включать логгирование, попробуйте убрать последовательность /?$

   
 
 автор: 10100100   (04.02.2007 в 14:51)   письмо автору
 
   для: cheops   (04.02.2007 в 11:39)
 

данные всёравно не передаются скрипту :( попробую включить логирование.

   
 
 автор: 10100100   (03.02.2007 в 02:13)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

а ан сервере вообще 404 выдаёт.

   
 
 автор: 10100100   (04.02.2007 в 06:15)   письмо автору
 
   для: 10100100   (03.02.2007 в 02:13)
 

Игорь Вячеславович, помогите пожалуйста.

   
 
 автор: 10100100   (06.02.2007 в 12:22)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

в файле httpd.conf теперь вот так выглядит блок:


<VirtualHost _default_:*>
    ServerName non-existent-host
    DocumentRoot /home/non-existent-host
    RewriteLog logs/rewrite.log 
    RewriteLogLevel 9
</VirtualHost>

правильно ли я сделал?
да и ничего не изменилось. Файл я создал но в нём пусто :(

   
 
 автор: glsv (Дизайнер)   (07.02.2007 в 06:16)   письмо автору
 
   для: 10100100   (06.02.2007 в 12:22)
 

>Файл я создал но в нём пусто :(
logs/rewrite.log имеете ввиду? Он должен сам создаваться автоматически после перезагрузки Apache. А данные в него будут записываться если используются преобразования mod_rewrite.

PS: Проверил Ваши инструкции mod_rewrite в первом посте - прекрасно работают.

   
 
 автор: 10100100   (07.02.2007 в 12:47)   письмо автору
 
   для: glsv (Дизайнер)   (07.02.2007 в 06:16)
 

Работают????
а как Вы данные принимаете?

id_cat = $_GET['id_cat'];


Так?

   
 
 автор: glsv   (07.02.2007 в 18:33)
 
   для: 10100100   (07.02.2007 в 12:47)
 

Ну да:

print_r($_GET)

   
 
 автор: 10100100   (08.02.2007 в 04:07)   письмо автору
 
   для: glsv   (07.02.2007 в 18:33)
 

а у меня покаывает что массив пуст....
так получается мне нужно было ввести в адресую строку вот такую строку где последние две цифры это и есть переменные да?
http://localhost/xxx/cmsin/news/show_cat_ucat/1/1/

но почему то у меня это не работает :(

   
 
 автор: glsv (Дизайнер)   (08.02.2007 в 06:26)   письмо автору
 
   для: 10100100   (08.02.2007 в 04:07)
 

>а у меня покаывает что массив пуст....
Да, очень странно.

> где последние две цифры это и есть переменные да?
Ну да, у меня они и приходят. Единственно отличие в моем эксперименте: я проверял не на 4 вложенных каталогах, а на одном.
ttp://localhost/cat/1/1/

Может быть в этом проблема. Посмотрите будет ли передача, если сохратить кол-во вложенных каталогов.

   
 
 автор: 10100100   (08.02.2007 в 15:49)   письмо автору
 
   для: glsv (Дизайнер)   (08.02.2007 в 06:26)
 

не получается... давайте по порядку всё разложим - возможно так будет проще.

создаём каталог в локалхосте с названием "cat".
в нёи файлы: .htaccess

Options +FollowSymlinks    
RewriteEngine On 
RewriteBase /
RewriteRule   ^cat/show_cat_ucat/([0-9]+)/([0-9]+)  cat/show_cat_ucat.php?id_cat=$1&id_ucat=$2 [L]

и файл show_cat_ucat.php в котором есть строка

print_r($_GET);

всё равно не получается - где ошибочка у меня?

   
 
 автор: glsv (Дизайнер)   (13.02.2007 в 06:14)   письмо автору
 
   для: 10100100   (08.02.2007 в 15:49)
 

Занятно... у меня работает. Давайте копать дальше.
Apache у Вас какой версии?

>создаём каталог в локалхосте с названием "cat". В нёи файлы: .htaccess
Только файл .htaccess должен лежать не в директории cat, а в корне сайта. У Вас где лежит?

   
 
 автор: 10100100   (13.02.2007 в 14:13)   письмо автору
 
   для: glsv (Дизайнер)   (13.02.2007 в 06:14)
 

да уж, интересно :)

Апач у меня неизвестной версии - я ламер в этом вопросе и у меня вообще стоит денвер. вот название дистрибутива: "Base_2005-07-19_a1.3.31_p4.4.0_m4.1.8_pma2.6.1"

у меня файл .htaccess лежит в главной директории сайта - тоетсь я же гвоорил что сделал как Вы - я создал на локалхосте сайт cat и прямо в него поместил этот весь код... не работает. точнее как то странно себя ведёт. страница то нужная грузится а данные не передаются - это вообще как возможно?.

   
 
 автор: glsv   (13.02.2007 в 14:22)
 
   для: 10100100   (13.02.2007 в 14:13)
 

У Вас Apache версии 1.3.3.
Скорее всего, в Apache2 немного изменился синтаксис регулярных выражений, используемый в mod_rewrite. Уже сталкивался с подобным.

>страница то нужная грузится а данные не передаются - это вообще как возможно?
Т.е. как. mod_rewrite вроде бы работает правильно, но GET-переменных Вы не видите?

   
 
 автор: 10100100   (13.02.2007 в 14:38)   письмо автору
 
   для: glsv   (13.02.2007 в 14:22)
 

Вы мне предлагаете установить новую версию Апача? это поможет?

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

   
 
 автор: glsv (Дизайнер)   (15.02.2007 в 05:47)   письмо автору
 
   для: 10100100   (13.02.2007 в 14:38)
 

>Вы мне предлагаете установить новую версию Апача? это поможет?
Гарантий нет...

>ну да сам модуль вроде бы перенаправляет - тоетсь сама страница то грузится а переменных нет

А без mod_rewrite, просто на обычных страницах можете получать GET-переменные?

   
 
 автор: 10100100   (15.02.2007 в 14:57)   письмо автору
 
   для: glsv (Дизайнер)   (15.02.2007 в 05:47)
 

да - на обычных страницах я запросто получаю все необходимые переменые.

   
 
 автор: glsv (Дизайнер)   (18.02.2007 в 07:34)   письмо автору
 
   для: 10100100   (15.02.2007 в 14:57)
 

Честно говоря, не знаю что посоветовать.
Если mod_rewrite работает правильно, то должны передаваться и GET переменные. Если они не передаются, но mod_rewrite работает... По логике, так не может быть. И здесь советы заканчиваются. В качестве дуболомного совета: попробуйте сменить версию Apache, установить новый денвер.

   
 
 автор: 10100100   (18.02.2007 в 15:49)   письмо автору
 
   для: glsv (Дизайнер)   (18.02.2007 в 07:34)
 

мда - понимаю Ваше негодование. но всё именно так как я описал - не исключаю что чтонить сделал не правильно, :( не понимаю в чём проблема - спасибо за посильную помощь - я воспользуюсь Вашим советом и отпишусь что из этого вышло.

   
 
 автор: 10100100   (19.02.2007 в 15:00)   письмо автору
 
   для: 10100100   (18.02.2007 в 15:49)
 

Не работает - установил последний по дате дистрибутив Денвера - и не пашет :( ничего не понимаю... в чём проблема то? :((

   
 
 автор: 10100100   (12.02.2007 в 18:05)   письмо автору
 
   для: 10100100   (26.01.2007 в 14:23)
 

помогите пожалуйста :(

   
 
 автор: 10100100   (14.02.2007 в 20:04)   письмо автору
 
   для: 10100100   (12.02.2007 в 18:05)
 

и снова тишина :(

   
 
 автор: 10100100   (17.02.2007 в 13:01)   письмо автору
 
   для: 10100100   (14.02.2007 в 20:04)
 

Лектор лопух, но аппаратура принём, принём :)

   
Rambler's Top100
вверх

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