add header after fcgi handling

Maxim Dounin mdounin at mdounin.ru
Wed Aug 8 10:55:51 UTC 2012


Hello!

On Wed, Aug 08, 2012 at 11:05:46AM +0200, Aleksandar Lazic wrote:

> Hi,
> 
> please can anybody help me, I'm stucked and sure that I think in
> wrong way.
> 
> the .htaccess
> 
> /web/root/interfaces/.htaccess
> 
> RewriteEngine on
> RewriteBase /interfaces
> RewriteRule ^json/(.*) index.php?x=$1&%{QUERY_STRING} [NC]
> 
> Translated to (the easy part I think)
> 
>         location ~ /interfaces/json/(\S+) {
>           try_files /$uri /interfaces/index.php?x=$1&$args;
>         }
> 
> now
> 
> Header set Access-Control-Allow-Origin *
> Header set Access-Control-Allow-Headers "X-Requested-With, *"
> 
> to
>         location /interfaces {
>           include
> /home/nginx/server/conf/add_header-Access-Control-Allow-Origin.conf;
>           add_header Access-Control-Allow-Headers "X-Requested-With,
> *";
>         }
> 
> but when the php request is handled the 'location /interfaces {..}'
> does not match any more,
> of course.
> 
> How can I add the header to the reply after the php is executed?!

You have to add headers in the location where you pass requests to 
php.  And you may need to add another location if you don't want to 
add headers to all responses from php.  Something like this should 
be fine:

    location /interfaces/ {
        add_header ...

        location ~ \.php$ {
            fastcgi_pass ...
            ...
        }
    }

Maxim Dounin



More information about the nginx mailing list