Не работает просто преобразование в mod_rewrite

Sander

Новичок
Не работает просто преобразование в mod_rewrite

Добрый день!
Пробую решить следующую задачу:
преобразовать url типа http://domain/ttt/bla-bla-bla/ в http://domain/ttt.php?a1=bla-bla-bla,
где bla-bla-bla - любая комбинация символов (не включающая в себя /), в том числе и пустая строка

Пишу в .хтаксесе следующую строку:
RewriteRule ^ttt/([^/]*)/$ ttt.php?a1=$1 [L]

1) ввожу http://domain/ttt/1/
- все работает нормально
2) ввожу http://domain/ttt//
- указанное правило не обрабатывается

Проблема возникла на ровном месте. На старом сервере все работало замечательно. Проблемы возникли после переезда...

Подскажите, в каком направлении искать хоть?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
- указанное правило не обрабатывается
Что значит
не обрабатывается
-~{}~ 23.09.07 19:59:

не включающая в себя /
Просто блеск.
Остальные символы, получается, можно...

-~{}~ 23.09.07 20:00:

Проблемы возникли после переезда
Если это архиважно
то сверить 2 конфигурации уж никак нельзя?
 

Sander

Новичок
Ошибка "Not Found", т.е. изменение url не происходит
Пробовал писать RewriteRule ^ttt/([^/]*)/$ ttt.php?a1=$1 [R]
В первом случае адресная строка меняется на нужную, во втором - нет.

-~{}~ 23.09.07 21:31:

то сверить 2 конфигурации уж никак нельзя?
Если можно подробнее, что именно сверять?
 

phprus

Moderator
Команда форума
Sander
Посмотри error.log и проверь включен ли у тебя mod_rewrite и включена ли у тебя обработка .htaccess файлов.

Mr_Max
то сверить 2 конфигурации уж никак нельзя?
Сверить то можно, но разве у апача мало настроек? Я когда поднимал сервер на новом тестовом компе примерно час искал почему mod_rewrite не работал, и только через час я заметил что у меня была отключена обработка .htaccess файлов. И это не смотря на то, что апач я настраивал далеко не первый раз.
 

Sander

Новичок
Автор оригинала: Mr_Max
ссылки вида

это жесть.
Mr. Max, я ценю Ваше "желание" помочь, но давайте обойдемся без подобных комментариев

Реальная ссылка имеет совершенно другой вид. Просто когда начал разбираться в чем дело, пришел к выводу, что не работает даже такая элементарная конструкция
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1) ввожу http://domain/ttt/1/
- все работает нормально
Что ещё нужно?

Реальная ссылка имеет совершенно другой вид
ну так давайте решать реальные задачи, а не те, что высосаны из пальца.

-~{}~ 23.09.07 22:04:

Пожалуйста реальный пример и реальный реврайт

-~{}~ 23.09.07 22:15:

.

Поймите-же конкретно с такой проблемой вряд-ли сталкивался кто-то ещё.
По той информации, что Вы предоставили я могу ответить одно -
Apache/1.3.37 (Win32) PHP/4.4.6 - работает.
Apache/1.3.37 (Win32) PHP/5.2.1 - работает.
 

Sander

Новичок
Mr_Max,
да что Вы придираетесь к этим символам, ей богу?
Если хотите, лично для Вас ограничим их только цифрами.
Для меня главное - это то, что параметр может быть, а может и быть пустая строка.
А правило работает так, вроде там стоит не звездочка, а плюсик

RewriteRule ^ttt/([0-9]*)/$ ttt.php?a1=$1 [L]
Та же ситуация.

phprus,
Обработка .htaccess и mod_rewrite включены. Как по-другому может работать преобразование в первом случае?
В еррорлоге:
[Sun Sep 23 22:49:22 2007] [error] [client 81.90.123.90] File does not exist: /var/www/vhosts/domain/httpdocs/ttt

п.с.
Апач - 1.3.37 (unix)
php - 4.4.3
Так что думаю - дело скорее всего в настройках. Другой вопрос, в каких...
 

hammet

Новичок
Вообще должно работать...ИМХО не думаю что тут конфиги апача ковырять нужно.

Sander а какого результата вы ждете от урла http://domain/ttt//? Во что по вашему он должен преобразоваться, не ясно.

Для нормальных урлов эта конструкция будет работать.

RewriteRule ^ttt/([^/]+) ttt.php?a1=$1

Остальное делается средствами PHP
 

cDLEON

Онанист РНРСlub
RewriteRule ^ttt/([^/]*)/$ ttt.php?a1=$1 [L]
А как это правило может вообще сработать в ситуации с
//
Это я только один увидел?
 

SiMM

Новичок
* квантификатор, означающий ноль или более вхождений
(C) [m]reference.pcre.pattern.syntax[/m]
 

cDLEON

Онанист РНРСlub
SiMM
Тьфу ты. Глючу. Нужно прекращать работать по ночам.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Sander
Ну и что из того?
что Вы __сами__зделали для, того, чтобы решить свою проблему?
Где подробный отчёт?
Неужели даже мыслей нет?

Хорошо. Тогда
1. в Еррор документ прописываете реальный файл в нём phpinfo().
2. Вы видите там свой запрашиваемый урл? в каком виде?
 

Sander

Новичок
Хорошо. Тогда
1. в Еррор документ прописываете реальный файл в нём phpinfo().
2. Вы видите там свой запрашиваемый урл? в каком виде?
Вижу /ttt//
Что значит "в каком виде"?
 
Сверху