Best way to only allow specific file extensions?

David Taveras d3taveras38d3 at gmail.com
Tue Mar 9 00:57:55 MSK 2010


Hello Cliff,

I tried your suiggestion however at the end it is allowing any file
extension and it is still letting in unrecognized extensions.

Thanks

David


On Mon, Mar 8, 2010 at 4:01 PM, Cliff Wells <cliff at develix.com> wrote:
> 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
>
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>



More information about the nginx mailing list