Forum Webscript.Ru

Общие => Веб Сервера => Тема начата: Michel_Mak от 18 Октября 2002, 14:13:52

Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 18 Октября 2002, 14:13:52
Преобразовав url ?$action=menu_1 нужно получить, http://www.сайт.ru/меню_1/ , но при выполнении .htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteBase /t/
RewriteRule ^(.*)menu/(.*)$ $1/?$2
 
и url http://www.сайт.ru/menu/2

получаю редирект на корень сайта ???
Название: вопрос о чпу и RewriteRule
Отправлено: NeoNox от 18 Октября 2002, 14:53:25
Цитировать
url ?$action=menu_1 нужно получить, http://www.сайт.ru/меню_1/

Такой запрос:
http://www.сайт.ru/php.pl?action=menu_1 ?
Вероятно описывается так:
RewriteRule ^(.*)$ ./php.pl?action=$1
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 18 Октября 2002, 15:03:40
Цитировать
RewriteRule ^(.*)$ ./php.pl?action=$1

При такой записи сервер выходит на 10060 - Connection timeout
Internet Security and Acceleration Server
Название: вопрос о чпу и RewriteRule
Отправлено: NeoNox от 18 Октября 2002, 15:09:47
Напиши полностью какой нужен запрос и на что он должен заменяться.
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 18 Октября 2002, 15:25:57
написал скрипт "книжная полка", данные берутся из базы url при этом выглядит так: ?&категория&книга&id_пользователя.
Если пользователь выбрал категорию показываю список книг (имеется сортировка по книгам и авторам) ей принадлежащих, при выборе книги - вывожу соответственно информацию по ней.
Хотел с помощью RewriteEngine сделать нормальный ЧПУ.
Но утыкаюсь в вышеупомянутую ошибку.
Название: вопрос о чпу и RewriteRule
Отправлено: NeoNox от 18 Октября 2002, 15:34:55
Я имел ввиду следующее:
Запрос такой maro.newmail.ru/index.php?id_cat=1&id_book=1&id_usr=1
Нужно получить из такого: maro.newmail.ru/id_cat/id_book/id_usr

RewriteRule ^(.*)/(.*)/(.*)/(.*)$ $1/index.php?id_cat=$2&id_book=$3&id_usr=$4


Смотри сюда http://sitemaker.ru/technologies/webserver/mod_rewrite3/
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 18 Октября 2002, 15:44:36
Да, все правильно. ссылку уже прочитал, но при таком раскладе как
Цитировать
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ $1/index.php?id_cat=$2&id_book=$3&id_usr=$4
вываливаюсь на 404 ошибку.
Название: вопрос о чпу и RewriteRule
Отправлено: NeoNox от 18 Октября 2002, 15:52:56
Что логи говорят?
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 18 Октября 2002, 16:06:57
Цитировать
Что логи говорят?

примерно следующее:
/полный путь/t/2 [Fri Oct 18 15:42:09 2002] [error] [client мой IP] File does not exist:
Название: вопрос о чпу и RewriteRule
Отправлено: NeoNox от 18 Октября 2002, 16:25:42
Michel_Mak, срочно читать тут: http://httpd.apache.org/docs/misc/rewriteguide.html и тут: http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteRule в частности про "флаги".
Название: вопрос о чпу и RewriteRule
Отправлено: Alexandr от 21 Октября 2002, 08:39:05
Вот сильнейшая статейка:
http://www.engelschall.com/pw/apache/rewriteguide/

Очень много примеров!
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 22 Октября 2002, 16:32:32
NeoNox и Alexandr
Спасибо за статьи. Но проблема остается. К сожалению, суппорты помочь не смогли, ссылаясь на неправильную работу mod_rewrite.
Если вписываю
RewriteEngine on
RewriteRule ^(.*)/(.*)$ $1/index.php?id_cat=$2
Происходит, что то совсем не понятное, рисунки и css (в директориях лежат) не грузятся (в errors выводятся ошибки, что таких файлов нет). Вернее сказать, открываются, но как то избирательно и не всегда. Ну и соответственно, при указании в url своего пути, наример, maro.newmail.ru/id_cat - выдается ошибка 404 (документ отсутствует).
Название: вопрос о чпу и RewriteRule
Отправлено: Alexandr от 24 Октября 2002, 08:48:31
А так не пробовал
""

Т.е. всегда от корня искать.
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 24 Октября 2002, 10:14:46
Цитировать
от корня искать

Саш, спасибо, но я специально прописал все от корня и выдержал все названия в едином стиле :)
Название: вопрос о чпу и RewriteRule
Отправлено: Michel_Mak от 24 Октября 2002, 18:45:26
В результате многочисленных экспериментов было выявлено, что команда RewriteBase / - вызывает ошибки при чтении информации из директорий с картинками и стилями. Реакция на ключи [R] и [L], в разных вариантах приводила к ненахождению страниц сайта или ошибкам.
Удалось с помощью команды RewriteRule ^page/(.*)$ index.php?page=$1 приблизиться к желаемому результату.
В данном случае url выглядит так http://www.мой_сайт.ru/page/about, но как убрать "page" (http://www.мой_сайт.ru/about) - загадка?
Может еще есть варианты?
Название: вопрос о чпу и RewriteRule
Отправлено: Alexandr от 24 Октября 2002, 23:00:10
Michel_Mak похоже мы вместе паримся над похожими проблемами :-(
Название: вопрос о чпу и RewriteRule
Отправлено: Prosto-Chups от 31 Августа 2008, 20:53:55
Michel_Mak

Вот вам решение:

RewriteRule ^page/(.*)$ ./index.php?page=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ index.php?page=$1 [L]