Re: Передача оригинального URI в SSI
Denis F. Latypoff
denis at gostats.ru
Sat May 12 23:27:11 MSD 2007
Hello Alex,
Sunday, May 13, 2007, 1:59:06 AM, you wrote:
> Привет,
> честно искал поиском на своем же сайте - не нашел.
> Вот есть такая вот конфигурация:
> location / {
> ssi on;
> proxy_pass backend;
> }
> На backend сайтик весь из себя на перле, понадобилось включить туда PHP-шного
> кода (чужого!) жутко не хочется его переписывать самому на perl, хочется
> готового.
> backend выдает теперь:
> ... <!--#include virtual="/inc.php" -->
> Каковой inc.php берется, вестимо, с backend
> Но этому самому inc.php нужно знать куда его включили. REQUEST_URI, естественно,
> равен http://backend/inc.php
> Ладно, пишем так:
> location /inc.php {
- rewrite /inc.php /inc.php?uri=$request_uri;
+ proxy_set_header X-Request-Uri $request_uri;
> proxy_pass backend;
> }
- (ну и, естественно, хачим inc.php, чтобы он брал URL из $_GET['uri'])
+ (ну и, естественно, хачим inc.php, чтобы он брал URL из $_SERVER['HTTP_X_REQUEST_URI'])
> Для простых запросов - работает. Для запросов с аргументами - нет,
> ибо рерайтится все в /inc.php?uri=/my/page?aa=bb&cc=dd
> Другими словами, нужен либо адвайс (уверен, что я не первый хожу по этим
> граблям), либо просто переменная вроде $escaped_uri
> Я, естественно, могу написать perl_set $var 'sub ...', но что-то очень
> не хочется. Этот бутерброд периодически приходится поддерживать,
> а скотчем я не торгую.
> Рерайтить в /inc.php/$request_uri и использовать extra-path я тоже
> умею, но по тем же причинам нерегулярной поддержки (в это место залезают
> дай б-г раз в год) тоже не хочу.
> Алексей Тутубалин
> mailto: lexa at lexa.ru
> Web: http://www.lexa.ru/lexa
--
Best regards,
Denis mailto:denis at gostats.ru
More information about the nginx-ru
mailing list