Best way to only allow specific file extensions?
Cliff Wells
cliff at develix.com
Tue Mar 9 00:01:56 MSK 2010
On Mon, 2010-03-08 at 15:39 -0500, David Taveras wrote:
> Hello,
>
> Iam running a reverse proxy and I would like only to relay certain
> type of extensions to the backend.. (and ofcourse any directory)
>
> location / {
> proxy_pass http://www.domain.org:80/;
> proxy_pass_header Set-Cookie;
> proxy_set_header X-Real-IP $remote_addr;
>
> }
>
> ## Only allow these file types to document root
> location / {
> if ($request_uri ~*
> (^\/|\.html|\.jpg|\.php|\.png|\.css|\.ico|\.js|\.swf|\.gif|robots\.txt)$
> ) {
> break;
> }
> return 444;
> }
You can use regular expressions in the location, no need for separate
"if":
location ~ ^(\/|\.html|\.jpg|\.php|\.png|\.css|\.ico|\.js|\.swf|\.gif|robots\.txt)$ {
return 444;
}
Also, double-check your regex. It looks like you've misplaced your
parens in the original, you have (^...)$ and it should be ^(...)$.
Regards,
Cliff
More information about the nginx
mailing list