Linode Forum
Linode Community Forums
 FAQFAQ    SearchSearch    MembersMembers      Register Register 
 LoginLogin [ Anonymous ] 
Post new topic  Reply to topic
Author Message
 Post subject: nginx mime type problem
PostPosted: Mon Mar 26, 2012 10:39 pm 
Offline
Junior Member

Joined: Sat Feb 11, 2012 3:29 pm
Posts: 26
hey guys I decided to add the code below to my nginx conf file so that all request from mobile devices are under the m.domain.com url. However After I added the code and visited my site with a mobile device, none of the css,js,jpg files were loading.

code added to nginx conf file
Code:
       
       #--------------- For Mobile Devices ----------------#
      set $mobile_rewrite do_not_perform;

      if ($http_user_agent ~* "android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino") {
        set $mobile_rewrite perform;
      }

      if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-)") {
        set $mobile_rewrite perform;
      }

      if ($mobile_rewrite = perform) {
        rewrite ^ http://m.mywebsite.com redirect;
        #rewrite ^(.*)$ $scheme://mywebsite.com/mobile/$1;
        #return 301 http://m.mywebsite.com;
        #break;
      }
      #---------------------------------------------------#


And this is the full conf file

Code:
worker_processes  1;

events
{
    worker_connections  1024;
}


http
{
   include       mime.types;
    include       /etc/nginx/conf/fastcgi.conf;
    default_type  application/octet-stream;
   sendfile        on;
    keepalive_timeout  65;

   #server1
    server {
   
        listen       80;
        server_name  mywebsite.com www.mywebsite.com ;
      
      index  index.html index.htm index.php;
        root   /srv/http/mywebsite.com/public;
   
      access_log /srv/http/mywebsite.com/logs/access.log;
      error_log /srv/http/mywebsite.com/logs/error.log;
      
   
      #---------------- For CodeIgniter ----------------#
        # canonicalize codeigniter url end points
       # if your default controller is something other than "welcome" you should change the following
       if ($request_uri ~* ^(/main(/index)?|/index(.php)?)/?$)
       {
           rewrite ^(.*)$ / permanent;
         }
 
       # removes trailing "index" from all controllers
       if ($request_uri ~* index/?$)
       {
           rewrite ^/(.*)/index/?$ /$1 permanent;
       }
   
 
       # removes trailing slashes (prevents SEO duplicate content issues)
       if (!-d $request_filename)
       {
           rewrite ^/(.+)/$ /$1 permanent;
         }
        

          # unless the request is for a valid file (image, js, css, etc.), send to bootstrap
          if (!-e $request_filename)
         {
              rewrite ^/(.*)$ /index.php?/$1 last;
            break;
       }
       #---------------------------------------------------#
       
       #--------------- For Mobile Devices ----------------#
      set $mobile_rewrite do_not_perform;

      if ($http_user_agent ~* "android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino") {
        set $mobile_rewrite perform;
      }

      if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-)") {
        set $mobile_rewrite perform;
      }

      if ($mobile_rewrite = perform) {
        rewrite ^ http://m.mywebsite.com redirect;
        #rewrite ^(.*)$ $scheme://mywebsite.com/mobile/$1;
        #return 301 http://m.mywebsite.com;
        #break;
      }
      #---------------------------------------------------#
        location /
        {
            index  index.html index.htm index.php;
        }
       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html
        {
            root   html;
        }

     
        location ~ \.php$
        {
             try_files $uri =404;
             fastcgi_pass  127.0.0.1:9000;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           fastcgi_param PATH_INFO $fastcgi_script_name;
             include /etc/nginx/conf/fastcgi_params;
        }
       
       
       
       
       

       
    }#sever1
   
    #server 2
    server {
   
        listen       80;
        server_name  m.mywebsite.com;
      
      index  index.html index.htm index.php;
        root   /srv/http/mywebsite.com/public;
   
      access_log /srv/http/mywebsite.com/logs/access.log;
      error_log /srv/http/mywebsite.com/logs/error.log;
      
   
      #---------------- For CodeIgniter ----------------#
        # canonicalize codeigniter url end points
       # if your default controller is something other than "welcome" you should change the following
       if ($request_uri ~* ^(/main(/index)?|/index(.php)?)/?$)
       {
           rewrite ^(.*)$ / permanent;
         }
 
       # removes trailing "index" from all controllers
       if ($request_uri ~* index/?$)
       {
           rewrite ^/(.*)/index/?$ /$1 permanent;
       }
   
 
       # removes trailing slashes (prevents SEO duplicate content issues)
       if (!-d $request_filename)
       {
           rewrite ^/(.+)/$ /$1 permanent;
         }
        

          # unless the request is for a valid file (image, js, css, etc.), send to bootstrap
          if (!-e $request_filename)
         {
              rewrite ^/(.*)$ /index.php?/$1 last;
            break;
       }
       #---------------------------------------------------#

        location /
        {
            index  index.html index.htm index.php;
        }
       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html
        {
            root   html;
        }

     
        location ~ \.php$
        {
             try_files $uri =404;
             fastcgi_pass  127.0.0.1:9000;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           fastcgi_param PATH_INFO $fastcgi_script_name;
             include /etc/nginx/conf/fastcgi_params;
        }
       
       
       
       
       

       
    }#sever2
   
    }#http


I fired up safari with the iphone useragent to do some debugging and found this to be the cause of my problems.
Code:
text.cssResource interpreted as stylesheet but transferred with MIME type text/html.
960_16_col.cssResource interpreted as stylesheet but transferred with MIME type text/html.
design.cssResource interpreted as stylesheet but transferred with MIME type text/html.
navigation_menu.cssResource interpreted as stylesheet but transferred with MIME type text/html.
reset.cssResource interpreted as stylesheet but transferred with MIME type text/html.
slide_down_panel.cssResource interpreted as stylesheet but transferred with MIME type text/html.
myrealtorpage_view.cssResource interpreted as stylesheet but transferred with MIME type text/html.
head.jsResource interpreted as script but transferred with MIME type text/html.
head.js:1SyntaxError: Parse error
isaac:208ReferenceError: Can't find variable: head
mrp_home_icon.pngResource interpreted as image but transferred with MIME type text/html.
M_1_L_289_I_499_default_thumb.jpgResource interpreted as image but transferred with MIME type text/html.
M_1_L_290_I_500_default_thumb.jpgResource interpreted as image but transferred with MIME type text/html.
M_1_default.jpgResource interpreted as image but transferred with MIME type text/html.
default_listing_image.pngResource interpreted as image but transferred with MIME type text/html.


If I remove the chunk of code inbetween
Code:
#--------------- For Mobile Devices ----------------#
#---------------------------------------------------#


everything loads up right; so the problem lies in there. does anyone know how I can fix this? has anyone encountered a similar situation?


Top
   
 Post subject:
PostPosted: Tue Mar 27, 2012 6:17 pm 
Offline
Senior Member
User avatar

Joined: Sat Aug 30, 2008 1:55 pm
Posts: 1739
Location: Rochester, New York
It looks like it's just doing a naive redirect of http://example.com/<anything> to http://m.example.com. If you're referring to your static assets with full URLs (http://example.com/whatever/blah.css), they will get redirected to http://m.example.com/ as well.

Pick one:

1) rewrite ^ http://m.example.com$request_uri;

2) Make sure you don't refer to your static assets as http://example.com/whatever/foo.css when you instead mean http://m.example.com/whatever/foo.css or /whatever/foo.css

3) Skip the m.* redirect silliness and move template selection to your application without having separate URLs. This will make those of us who like to share links with our friends much happier.

_________________
Code:
/* TODO: need to add signature to posts */


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
RSS

Powered by phpBB® Forum Software © phpBB Group