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