|
|
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/¶m=$2 [L,QSA]
Тем не менее, система упорно твердит "страница не найдена".
Классический вопрос: чего я не понимаю и что я делаю не так?
Заранее спасибо за ответ.
|
|
|
30.03.2011, 08:22
|
|
Гость
Гость
|
Да, Netcat Standard 4.1
|
|
|
30.03.2011, 08:48
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Вот эту тему читали?
прочтите, возможно, придется поставить обновление.
|
|
|
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, тогда пардон
|