Best way to only allow specific file extensions?
Igor Sysoev
igor at sysoev.ru
Tue Mar 9 10:38:24 MSK 2010
On Mon, Mar 08, 2010 at 09:39:27PM -0800, Cliff Wells wrote:
> Okay, so if I understand you, you want:
>
> 1) all requests for particular extensions and directories to be proxied
> to a backend
>
> 2) everything else to return 444
>
>
> location ~ (/?|\.html$|\.jpg|\.php|\.png|\.css|\.ico|\.js|\.swf|\.gif|robots\.txt)$ {
> proxy_pass http://www.domain.org:80/;
- proxy_pass http://www.domain.org:80/;
+ proxy_pass http://www.domain.org:80;
> }
>
> location / { return 444; }
>
>
> Is that closer to what you want?
>
> Cliff
>
> On Mon, 2010-03-08 at 16:57 -0500, David Taveras wrote:
> > 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 ^(...)$.
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list