Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

mod_rewrite, поясните что не так

30.03.2011, 08:16
Гость
Гость

Здравствуйте.
Возникла необходимость преобразовать урл вида
/catalog/sub_name/?param=xxx к виду
/catalog/sub_name/param_xxx.html

На основании http://www.netcat.ru/support/knowledge/knowledge_77.html сделал следующее:

Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/catalog/(.+)/param_(.+)\.html$ /netcat/require/e404.php?REQUEST_URI=/catalog/$1/&param=$2 [L,QSA]


Тем не менее, система упорно твердит "страница не найдена".
Классический вопрос: чего я не понимаю и что я делаю не так?

Заранее спасибо за ответ.
30.03.2011, 08:22
Гость
Гость

Да, Netcat Standard 4.1
30.03.2011, 08:48
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Вот эту тему читали?
прочтите, возможно, придется поставить обновление.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
30.03.2011, 09:03
Антон

Зарегистрирован:
2011-03-30
Сообщений: 6

Цитата:
Вот эту тему читали?
прочтите, возможно, придется поставить обновление.


Да, читал, но обновление ставить заказчик не хочет.
В текущих условиях меня вполне устроит и вариант с модификацией ядра, знать бы еще что именно модифицировать улыбка
30.03.2011, 12:52
resident
Веб-группа «Дабл Ю»

Зарегистрирован:
2005-01-10
Сообщений: 336

урл вида
/catalog/sub_name/?param=xxx
не соответствует правилу
RewriteRule ^/catalog/(.+)/param_(.+)\.html$
на примере новостей должно быть так

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{QUERY_STRING} ^news=(\d+)$ [NC]
RewriteRule ^about/news/$ /netcat/require/e404.php?REQUEST_URI=/about/news/news_%1.html [L,QSA]

адрес
/about/news/?news=7
для нетката выглядит как
/about/news/news_7.html
30.03.2011, 13:04
Антон

Зарегистрирован:
2011-03-30
Сообщений: 6

Цитата:
урл вида
/catalog/sub_name/?param=xxx
не соответствует правилу
RewriteRule ^/catalog/(.+)/param_(.+).html$
на примере новостей должно быть так

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{QUERY_STRING} ^news=(d+)$ [NC]
RewriteRule ^about/news/$ /netcat/require/e404.php?REQUEST_URI=/about/news/news_%1.html [L,QSA]

адрес
/about/news/?news=7
для нетката выглядит как
/about/news/news_7.html


Пользователь вводит "/catalog/sub_name/param_xxx.html"
Он должен видеть в строке адреса то, что ввел.
Но сервер должен получить "/catalog/sub_name/?param=xxx".

В Вашем же примере выходит с точностью до наоборот
30.03.2011, 13:27
Антон

Зарегистрирован:
2011-03-30
Сообщений: 6

Прошу пояснить один момент:

Добавляю правило вида
RewriteRule ^/catalog/(.+)/param_(.+)\.html$ /catalog/$1/?param=$2 [L,QSA]

Ввожу непосредственно УРЛ /catalog/sub_name/?param=xxx. Все нормально, все работает.

И при попытке перейти по урлу "/catalog/sub_name/param_xxx.html" получаю ошибку "Страница не найдена". Это откуда жеж тогда система забирает текущий УРЛ?
30.03.2011, 18:05
Антон

Зарегистрирован:
2011-03-30
Сообщений: 6

Переписал e404.php под свои нужды, все пучком.
30.03.2011, 18:08
Гость
Гость

можно было и не переписывать.
тут все разжевали - netcat.ru/support/forum/razrabotka-sayta/topic_11046.html?curPos=10
30.03.2011, 18:10
Гость
Гость

...ах у вас же Netcat Standard 4.1, тогда пардон улыбка
198 196 2011-03-30 18:10:00 11148
Описание проекта