# Nginx rewrite of certain mime types and request processing order

**URL:** <https://www.ruby-forum.com/t/nginx-rewrite-of-certain-mime-types-and-request-processing-order/224250>\
**Category:** NGINX\
**Created:** [November 5, 2012, 12:01pm UTC](https://www.ruby-forum.com/t/nginx-rewrite-of-certain-mime-types-and-request-processing-order/224250 "2012-11-05T12:01:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [November 5, 2012, 12:01pm UTC](https://www.ruby-forum.com/t/nginx-rewrite-of-certain-mime-types-and-request-processing-order/224250/1 "2012-11-05T12:01:00Z")

</div>

Hi,

Having following nginx virtual host config:

#==============================================  
upstream cf-domain {  
server unix:/data/www/prod/domain.com/cf/cf-domain.sock;  
}

server {  
listen 10.0.0.1:80;  
listen 127.0.0.1:28005;  
server\_name [cf.domain.com](http://cf.domain.com);  
index index.php index.html;  
root /data/www/prod/domain.com/cf/htdocs;  
charset utf-8;  
access\_log /data/www/prod/domain.com/cf/logs/frontend/access.log;  
error\_log /data/www/prod/domain.com/cf/logs/frontend/error.log;  
client\_max\_body\_size 8m;

```
# get rewrite
location /get/ {
    rewrite ^/get/([^/]+)/([^/]+)$ /get/index.php?contid=$1 last;
}

# static content
location ~* \.(jpg|jpeg|gif|css|png|js|swf|ico|rar|zip)$ {
    expires max;
    access_log off;
    log_not_found off;
}

location / {
     try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass cf-domain;
    fastcgi_param SCRIPT_FILENAME 

```

$document\_root$fastcgi\_script\_name;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
}

```
#include conf.d/cf.dirs.conf;

```

}  
#==============================================

The problem is with processing order and /get location rewrite.  
The request: [http://cf.domain.com/get/68175/fingergr.swf](http://cf.domain.com/get/68175/fingergr.swf) returns 404,  
instead by getting processed by /get location rewrite rule. This is  
because  
swf is defined in (static content) location:

```
# static content
location ~* \.(jpg|jpeg|gif|css|png|js|swf|ico|rar|zip)$ {
    expires max;
    access_log off;
    log_not_found off;
}

```

How is it possible to have /get location rewrite working together  
without  
removing swf type from static content location?

Thanks,  
T

Posted at Nginx Forum:

> **[nginx rewrite of certain mime types and request processing order](https://forum.nginx.org/read.php?2,232503,232503#msg-232503)**
>
> Hi, Having following nginx virtual host config: #============================================== upstream cf-domain { server unix:/data/www/prod/domain.com/cf/cf-domain.sock; } server { listen 10.0.0.1:80; lis

---

<div class="post-metadata">

**Author:** ![technoplague](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/a9a28c/32.png) [@technoplague](https://www.ruby-forum.com/u/technoplague)\
**Post date:** [November 5, 2012, 12:21pm UTC](https://www.ruby-forum.com/t/nginx-rewrite-of-certain-mime-types-and-request-processing-order/224250/2 "2012-11-05T12:21:30Z")

</div>

On Mon, Nov 05, 2012 at 06:00:32AM -0500, technoplague wrote:

Hi there,

> ```
> }
> 
> ```
> 
> How is it possible to have /get location rewrite working together without  
> removing swf type from static content location?

> **[Module ngx\_http\_core\_module](http://nginx.org/en/docs/http/ngx_http_core_module.html#location)**
>
> This directive appeared in version 1.11.8.

Note particularly the various things in between “location” and “uri”,  
and the example configurations D and E.

## f

Francis D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
