![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2009
Сообщений: 20
|
При запросе:
«site.com/coord?x=9&y=3» мне надо получить параметры x и y Обычно их получают через $_REQUEST Так вот, я использовал RewriteEngine и вот такое перенаправление: RewriteRule (.*) engine.php?$1 После этого $_REQUEST пуст (т.е. нету в них x и y) Единственное место, где можно увидеть параметры: $_SERVER['REQUEST_URI'], там будет «site.com/coord?x=9&y=3» Вопрос: как добраться до параметров (вручную выуживать неохото) и почему так происходит? Может быть rewrite неправильный (хотя там он и так проще простого - перенаправляет на engine.php, а тот выдает нужный материал)? |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
как я понимаю нормальная строка запроса это "site.com/engine.php?x=9&y=3" ??
а получить надо "site.com/coord?x=9&y=3" проверил, работает. Вообще как-то можно делать жесткое условия. типа: или Но у меня они не работают. Не понятно почему.. |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 20
|
Membrilius ты меня не понял.
Любой запрос на сайт обрабатывается engine.php. А этот скрипт не видит переданные ему параметры. Ведь любые переданные параметры со строкой запроса попадают в $_REQUEST (а еще есть $_GET и $_POST). RewriteEngine я использую для ЧПУ. |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
нет я понял. У Вас не правильно сделано преобразование
я сделал так: Написал заглушку engine.php по запросу http://localhost/coord?x=9&y=3 скрипт чудесно выводит на кран значения GET'a |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 20
|
Вся проблема, похоже, в RewriteRule. Если сделать запрос вида:
RewriteRule (.*) engine.php, то $_REQUEST заполняется правильно, но меняются значения переменных $_SERVER['REDIRECT_QUERY_STRING'] и других. Переписывать скрипт пока не охото. И еще, RegExp в PHP разве не такой же как в AS? Я хотел сделать так: RewriteRule fn_(.*) app.php [L] RewriteRule (.*) engine.php?$1 То есть если в запросе есть префикс fn_ (например: fn_sendmail), то будет обращение не к engine.php а к app.php который будет вызывать скрипт иначе будет выдавать материал. Но почему то не работет. А как правильно? |
|
|||||
|
Регистрация: Aug 2008
Сообщений: 258
|
работа с htaccess у хостингов настроена одинакова. Всякие Жумла и Вордпресы с их ЧПУ работают же.
Кстати $_REQUEST объединяет $_GET, $_POST и $_COOKIE в один массив.. им лучше не пользоваться. Цитата:
-------------- в этой записи одно перекрывает другое. Правильно не использовать только (.*) |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 20
|
Короч решил проблему так:
RewriteRule (.*) engine.php и переписал движок Вообще, регэкспы зло ![]() Текст программы пишется для человека, неужели кому-то может показаться запись /^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/ человечным. Да и процы вродь не любят их (производительность) |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:08. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| $_REQUEST , RewriteEngine , RewriteRule |
|
|