1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Nginx Rewrite

Discussion in 'Server Configuration and Hosting' started by akia, Jun 6, 2012.

  1. akia

    akia Well-Known Member

    I know its not related to xen foro but everyone is so helpful here. I'm trying to convert a .htaccess for phpmydirectory and want to check it over:

    the .htaccess file is:

    Code:
    #Options +FollowSymLinks
    #Options -MultiViews
    #Options All -Indexes
     
    # This can be uncommented to compress js and css files
    #<IfModule mod_deflate.c>
    #<FilesMatch "\.(js|css)$">
    # SetOutputFilter DEFLATE
    #</FilesMatch>
    #</IfModule>
     
    # This can be uncommented to set cache control for image, js, and css files
    #Header unset ETag
    #FileETag None
    #<FilesMatch "(?i)^.*\.(ico|flv|swf|jpg|jpeg|png|gif|js|css )$">
    #Header unset Last-Modified
    #Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT"
    #Header set Cache-Control "public, no-transform"
    #</FilesMatch>
     
    <FilesMatch "\.(htaccess|tpl)$">
    Order Allow,Deny
    Deny from all
    </FilesMatch>
     
    <IfModule mod_rewrite.c>
    RewriteEngine On
     
    #RewriteRule ^([a-zA-Z]+)\.html$ $1.php [L]
     
    #Handle all category links. Static category text followed by ID, followed by path
    #The "category" text here needs to be changed if the language variable category is changed
    RewriteRule ^category\/(.+/)location/(.+)$ browse_categories.php?id=$1&location=$2 [L,NC,QSA]
    RewriteRule ^category\/(.+)$ browse_categories.php?id=$1 [L,NC,QSA]
     
    #Handle all location links. Static location text followed by ID, followed by path
    #The "location" text here needs to be changed if the language variable location is changed
    RewriteRule ^location\/(.+)$ browse_locations.php?id=$1 [L,NC,QSA]
     
    #Rewrite pages
    RewriteRule ^pages\/(.+)\.html$ page.php?id=$1 [L,NC]
     
    #Rewrite Blog
    RewriteRule ^blog.html$ blog.php [L,NC,QSA]
    RewriteRule ^blog\/([^/]+)-([0-9]+).html$ blog_post.php?id=$2 [L,NC]
    RewriteRule ^blog\/category\/(.+)-([0-9]+).html$ blog.php?category_id=$2 [L,NC,QSA]
     
    #Rewrite listing/banner website out
    RewriteRule ^out-([0-9]+)\.html$ out.php?listing_id=$1 [L]
    RewriteRule ^out-([0-9]+)-([0-9]+)\.html$ out.php?listing_id=$1&banner_id=$2 [L]
     
    #Rewrite listings
    #Ignore any physical files
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)\.html$ listing.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/images\.html$ listing_images.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/send-message\.html$ listing_email.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/send-message-friend\.html$ listing_email_friend.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/reviews\.html$ listing_reviews.php?id=$1 [L,NC,QSA]
    RewriteRule ^([^/]+)/add-review\.html$ listing_reviews_add.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/classifieds\.html$ listing_classifieds.php?id=$1 [L,NC,QSA]
    RewriteRule ^([^/]+)/documents\.html$ listing_documents.php?id=$1 [L,NC,QSA]
    RewriteRule ^([^/]+)/suggestion\.html$ listing_suggestion.php?id=$1 [L,NC]
    RewriteRule ^([^/]+)/claim\.html$ listing_claim.php?id=$1 [L,NC]
     
    #Rewrite classifieds
    RewriteRule ^classified/[^/]+-([0-9]+)\.html$ classified.php?id=$1 [L,NC]
    RewriteRule ^classified/[^/]+-([0-9]+)/images\.html$ classified_images.php?id=$1 [L,NC]
     
    #Rewrite sitemap
    RewriteRule ^sitemap.xml$ xml.php?type=sitemap [L]
     
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ 404.php?id=$1 [L,NC]
     
    </IfModule>
    And in nginx format I've got:

    Code:
    # nginx configuration
     
    location /category {
    rewrite ^/category\/(.+/)location/(.+)$ /browse_categories.php?id=$1&location=$2 break;
    rewrite ^/category\/(.+)$ /browse_categories.php?id=$1 break;
    }
     
    location /location {
    rewrite ^/location\/(.+)$ /browse_locations.php?id=$1 break;
    }
     
    location /pages {
    rewrite ^/pages\/(.+)\.html$ /page.php?id=$1 break;
    }
     
    location = /blog.html {
    rewrite ^(.*)$ /blog.php break;
    }
     
    location /blog {
    rewrite ^/blog\/([^/]+)-([0-9]+).html$ /blog_post.php?id=$2 break;
    rewrite ^/blog\/category\/(.+)-([0-9]+).html$ /blog.php?category_id=$2 break;
    }
     
    location /out {
    rewrite ^/out-([0-9]+)\.html$ /out.php?listing_id=$1 break;
    rewrite ^/out-([0-9]+)-([0-9]+)\.html$ /out.php?listing_id=$1&banner_id=$2 break;
    }
     
    location / {
    if (!-e $request_filename){
    rewrite ^/([^/]+)\.html$ /listing.php?id=$1 break;
    }
    rewrite ^/([^/]+)/images\.html$ /listing_images.php?id=$1 break;
    rewrite ^/([^/]+)/send-message\.html$ /listing_email.php?id=$1 break;
    rewrite ^/([^/]+)/send-message-friend\.html$ /listing_email_friend.php?id=$1 break;
    rewrite ^/([^/]+)/reviews\.html$ /listing_reviews.php?id=$1 break;
    rewrite ^/([^/]+)/add-review\.html$ /listing_reviews_add.php?id=$1 break;
    rewrite ^/([^/]+)/classifieds\.html$ /listing_classifieds.php?id=$1 break;
    rewrite ^/([^/]+)/documents\.html$ /listing_documents.php?id=$1 break;
    rewrite ^/([^/]+)/suggestion\.html$ /listing_suggestion.php?id=$1 break;
    rewrite ^/([^/]+)/claim\.html$ /listing_claim.php?id=$1 break;
    if (!-e $request_filename){
    rewrite ^(.*)$ /404.php?id=$1 break;
    }
    }
     
    location /classified {
    rewrite ^/classified/[^/]+-([0-9]+)\.html$ /classified.php?id=$1 break;
    rewrite ^/classified/[^/]+-([0-9]+)/images\.html$ /classified_images.php?id=$1 break;
    }
     
    location = /sitemap.xml {
    rewrite ^(.*)$ /xml.php?type=sitemap break;
    }
     
    location ~ \.(htaccess|tpl)$ {
    deny all;
    }
    does that look like its converted properly.
     
  2. Jake Bunce

    Jake Bunce XenForo Moderator Staff Member

  3. akia

    akia Well-Known Member

    Yea that's the tool that I used to convert it but It dosnt seem to work unfortunatly.
     
  4. Floren

    Floren Well-Known Member

    Using rewrite rules in Nginx to "push" a SEO link to a php file is simply... insane. o_O
    Take advantage of fastcgi params instead, why do you like to kill your server with zillions of rewrites?

    Whoever started this rewrite "fashion" should be banned from Internet. Igor would fall off his desk chair, claim back and fall again... if he would see the rules posted above.
     

Share This Page