ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Передача оригинального URI в SSI



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@xxxxxxx
> Web: http://www.lexa.ru/lexa 



-- 
Best regards,
 Denis                            mailto:denis@xxxxxxxxxx




 




Copyright © Lexa Software, 1996-2009.