Re[2]: Как правильно задать SCRIPT_URL ?
Vitaly Puzrin
vitaly at rcdesign.ru
Thu Aug 9 17:20:49 MSD 2007
>> >> >> Проапдейтил php-скрипты, и оказалось что они захотели переменную
>> >> >> SCRIPT_URL, думая, что стоят на апаче с mod_rewrite.
>> >> >>
>> >> >> Подскажите пожалуйста, как эту переменную правильно задать из
>> >> >> подручных средств.
>> >>
>> >> IS> Судя по тому, что написано в конце
>> >> IS> http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
>> >> IS> для этого подойдёт $uri, если оно не менялось rewrite'ом.
>> >>
>> >> Игорь, в том и проблема, оно меняется реврайтом :(
>> >>
>> >> И по-моему, в uri все равно содержится имя файла, а если я правильно
>> >> понял, то SERVER_URL - именно путь к директории (со слешом на конце),
>> >> без файла (если был) и хоста.
>> >>
>> >> Очень внимательно копался в документации, так и не смог найти чего-то
>> >> похожего. Никак не ожидал подобной плюхи от EZ Publish. Хоть
>> >> назад откатывайся.
>> >>
>> >> Может добавить такую переменную в список ngx_http_core_module?
>>
>> IS> Насколько я понимаю, это SCRIPT_URL - это оригинальный URI:
>>
>> IS> set $script_url $uri;
>> IS> any rewrites
>>
>> Игорь, посмотрите пожалуйста пример из документации по SCRIPT_URL, там
>> нет имени файла, только путь. Я смотрел по php-скриптам - они тоже без имени
>> файла хотят.
IS> В примере после rewrite может быть всё, а вот, что они пишут в пояснении:
IS> Notice: These variables hold the URI/URL as they were initially requested,
IS> i.e., before any rewriting. This is important because the rewriting
IS> process is primarily used to rewrite logical URLs to physical pathnames.
IS> Кроме того, в исходниках SCRIPT_URL выставляется в полный r->uri:
IS> if (var == NULL) {
IS> ap_table_setn(r->subprocess_env, ENVVAR_SCRIPT_URL, r->uri);
IS> }
>> set сделать можно, но как с конца имя файла до слеша откусить?
IS> set $script_url $uri;
IS> if ($uri ~ ^(.+/)[^/]+$) {
IS> set $script_url $1;
IS> }
set $script_url $uri;
оказалось то что нужно. Игорь, большое спасибо за помощь.
More information about the nginx-ru
mailing list