| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > mod_rewrite почему такой результат? |
| Автор: maxipub 12.7.2011, 22:14 | ||||||
.htaccess:
index.php:
запрос: http://localhost/blablabla.php?bla=bla результат:
почему не: "blablabla.php?bla=bla" ??? |
| Автор: Absinthe 13.7.2011, 00:47 | ||
|
| Автор: skyboy 13.7.2011, 00:49 |
| потому что http://httpd.apache.org/docs/2.1/rewrite/flags.html#flag_qsa |
| Автор: srt 13.7.2011, 02:47 |
| RewriteRule ^(.*)$ index.php/$1 [L,QSA] |
| Автор: maxipub 13.7.2011, 07:45 | ||
.htaccess:
результат тот же |
| Автор: ayax2005 13.7.2011, 09:37 |
| %{QUERY_STRING} ??? |
| Автор: skyboy 13.7.2011, 11:54 | ||||
| сорри, просмотрел РНР код. надо так:
Добавлено @ 11:55 а не "blablabla.php?bla=bla" потому что в результате mod_rewrite эти все "$1" не начинают обрабатывать query-часть по-особенному. парсятся параметры по-прежнему:
|
| Автор: Absinthe 13.7.2011, 12:08 |
| maxipub, читай внимательно ответы. Решение тебе уже дали. |
| Автор: maxipub 18.7.2011, 12:01 |
| Ээ... ребята, по-моему, мы друг друга немного не поняли. Мне не надо чтоб строка запроса дописывалась к условию. Мне надо чтоб все, что после корневого слэша, передавалось переменной: localhost/*** $var = "***"; localhost/blablabla.php?bla=bla $var = "blablabla.php?bla=bla"; И т.д. Как такое сделать? |
| Автор: ayax2005 18.7.2011, 12:14 |
| А при чём тут htacсess? Вы про $_SERVER слышали? |
| Автор: maxipub 18.7.2011, 12:53 |
| ayax2005, ну я временно так и сделал. Но это не очень красиво, ИМХО. Надо бы все сделать через .htaccess, по-человечески. Ведь без рерайта урлов тут все равно не обойтись, т.к. надо посылать обработку всех запросов на один скрипт. |
| Автор: skyboy 18.7.2011, 17:19 | ||
вот получил бі после реврайта РНР такой запрос:
следуя твоей логике. как ему понять, что вопреки спецификации надо обработать "?bla=bla" просто как строку? URL rewriting должен работать и работает прозрачно для РНР. все, что можно узнать об "исходном" URL - в некоторых полях $_SERVER. и всё. |
| Автор: maxipub 18.7.2011, 19:20 |
| skyboy, ok |
| Автор: Sanchezzz 18.7.2011, 23:45 |
| если на сайте задействован реврайт то появляется перемененная $_SERVER["REAL_FILE_PATH"]; если нет то ее нет. if(!empty($_SERVER["REAL_FILE_PATH"])) $url = $_SERVER["REAL_FILE_PATH"]; |
| Автор: skyboy 21.7.2011, 14:31 |
ты что-то путаешь. в $_ENV - http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#EnvVar, в $_SERVER - REQUEST_URI |