Hi giorgino,
the commenly wrong assumption when working with nginx is, that every matching location directives will executed. Nginx will in general execute only one location directive.
Quote:
To summarize, the order in which directives are checked is as follows:
Directives with the "=" prefix that match the query exactly. If found, searching stops.
All remaining directives with conventional strings. If this match used the "^~" prefix, searching stops.
Regular expressions, in the order they are defined in the configuration file.
If #3 yielded a match, that result is used. Otherwise, the match from #2 is used.
|
So if your nginx configuration looks like (
http://www.axivo.com/community/threa...letin-3.123/):
Code:
location / {
try_files $uri $uri/ @vbseo;
}
location @vbseo {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/vbseo.php;
fastcgi_param QUERY_STRING vbseourl=$request_uri;
include fastcgi_params;
internal;
}
location ~ \.(jpg|jpeg|png|gif|ico) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
access_log off;
}
and you want to access an vbseo rewrite attachment url like
http://www.propit.it/attachments/f66...-.4.09-005.jpg the executed location directive will be
Code:
location ~ \.(jpg|jpeg|png|gif|ico) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
access_log off;
}
Since this doenst call vbseo.php the url will not resolve in the correct attachment url and you get an 404 http error.
So you could either extend your nginx configuration to always use try_files and then call vbseo.php as fallback, or you disable the rewrite of attachments with vbseo.
On our Forum we disabled this rewrite, cause the gain of this is - for us - lower than the gain of performance, since using try_files for every file isnt that good.
Best regards
Sebastian