ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Проблемы с Apache mod-rewrite
  #1  
Старый 19.08.2006, 07:16
Аватар для [hidden]
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
Unhappy Проблемы с Apache mod-rewrite

Есть правило в .htaccess

RewriteEngine On

RewriteRule ^res/([a-z]+)/([0-9]+)-([0-9]+)/(.+)\.html$ /res.php? db_name=$1&id_razdel=$2&num=$3&req=$4&mode=all

В браузере я вызываю http://site.myhost/res/hui/1-3/%C1%EB%FF%E4%E8.html --- стопроцентно подходит под правило. Но! Правило не срабатывает - если поставить аргумент [R] (редирект), то не редиректится на истинный URL и вызывается скрипт res.php без каких-либо аргументов.

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

Не подскажете, куда смотреть, где проблема?

UPD: Я использую Denwer (Apache 1.3.33, PHP 4.4.0), mod-rewrite поддерживается.

Последний раз редактировалось [hidden]; 19.08.2006 в 07:44..
 
Ответить с цитированием

  #2  
Старый 19.08.2006, 10:40
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

интересно что вернет мне твой скринпт при запросе
http://site.myhost/res/mysql/1-1/' UNION SELECT blablabla /*.html
=)))))) а вообще попробуй вместо "+" юзать "*"... на свой страх и риск....
 
Ответить с цитированием

  #3  
Старый 19.08.2006, 11:07
Аватар для SMiX
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Цитата:
В браузере я вызываю http://site.myhost/res/hui/1-3/%C1%EB%FF%E4%E8.html --- стопроцентно подходит под правило.
Вроде да.. Может, RewriteBase стоит определить?
 
Ответить с цитированием

  #4  
Старый 19.08.2006, 15:32
Аватар для [hidden]
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
По умолчанию

2Trinux: ууууу, тогда в титле будет написано "' UNION SELECT blablabla /*" =) Кукисы и сессии не используются, к БД последняя строчка отношения не имеет..
В регулярном выражении + означает, что есть один и более символов, * - ноль и более, так что тут походу больше подходит +..

2SMiX: гм... так в том-то и дело, что база - одна, папок _никаких_ нет, на хосте будут лежать только десяток скриптов и все.. Но спасибо, я посмотрю насчет этого.
 
Ответить с цитированием

  #5  
Старый 19.08.2006, 16:54
Аватар для [hidden]
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
По умолчанию

По логам RewriteLog:

127.0.0.1 - - [19/Aug/2006:16:32:16 +0400] [site.myhost/sid#a09938][rid#ae3208/initial] (3) [per-dir z:/home/myhost/site/] add path-info postfix: z:/home/myhost/site/hui -> z:/home/myhost/site/hui/2/
127.0.0.1 - - [19/Aug/2006:16:32:16 +0400] [site.myhost/sid#a09938][rid#ae3208/initial] (3) [per-dir z:/home/myhost/site/] strip per-dir prefix: z:/home/myhost/site/hui/2/ -> hui/2/

это правильно, дальше

127.0.0.1 - - [19/Aug/2006:16:32:16 +0400] [site.myhost/sid#a09938][rid#ae3208/initial] (3) [per-dir z:/home/myhost/site/] applying pattern '^([a-z]+)/([0-9]+)/$' to uri 'hui/2/'
127.0.0.1 - - [19/Aug/2006:16:32:16 +0400] [site.myhost/sid#a09938][rid#ae3208/initial] (2) [per-dir z:/home/myhost/site/] rewrite hui/2/ -> /res.php?db_name=hui&id_razdel=2

Все ок.

А вот после этого.....

127.0.0.1 - - [19/Aug/2006:16:32:16 +0400] [site.myhost/sid#a09938][rid#ae3208/initial] (1) [per-dir z:/home/myhost/site/] internal redirect with /res.php [INTERNAL REDIRECT]

ВСЕ. После этого применяется паттерн именно к res.php, а не к тому, что требуется (res/hui/1-3/%C1%EB%FF%E4%E8.html)

Кто-нибудь в курсе, что происходит? =) Откуда взялось "внутренее перенаправление"????
 
Ответить с цитированием

  #6  
Старый 19.08.2006, 19:17
Аватар для [hidden]
[hidden]
Участник форума
Регистрация: 05.11.2005
Сообщений: 103
Провел на форуме:
425441

Репутация: 31
По умолчанию

Короче, проблему я решил.. Вернее, я вылечил симптомы болезни, а не ее причину=(((

Более тщательно посмотрев лог RewriteLog, я поставил .php после res..

RewriteRule ^res.php/([a-z]+)/([0-9]+)-([0-9]+)/(.+)\.html$ /res.php? db_name=$1&id_razdel=$2&num=$3&req=$4&mode=all

Такого URL нет! Это неправильно! Но это по непонятным причинам работает!
Теперь при вызове http://site.myhost/res/hui/1-3/%C1%EB%FF%E4%E8.html
вызывается правило ^res.php/([a-z]+)/([0-9]+)-([0-9]+)/(.+)\.html$ .......

Колдунство (с), блин.

Последний раз редактировалось [hidden]; 19.08.2006 в 19:19..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начальная настройка Apache Grinder Чужие Статьи 7 21.06.2006 21:24
проблемы с apache mrslang Soft - Windows 13 29.03.2006 15:16
Проблемы с Аничатовскими штучками. temon Болталка 4 27.09.2005 12:52
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
ПРОБЛЕМЫ С ВИНДОЙ!!! ГЛЮК ИЛИ ЖУК??? Demerus С/С++, C#, Delphi, .NET, Asm 18 16.01.2005 12:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ