Welcome! Log In Create A New Profile

Advanced

Converting Rewrite rules

June 27, 2012 05:42PM
I'm needing help on converting a htaccess rules to the nginx format.

I've got the software installed in a sub folder called directory. In the root of that folder there is this .htaccess information:


#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>

Then in the following subfolders I've got these other ones:

Directory/files
<FilesMatch "\.(php|php3|php4|phtml|pl|cgi)$">
deny from all
</FilesMatch>

and
Directory/files/upload

<FilesMatch "\.csv$">
deny from all
</FilesMatch>

and
Directory/includes/ckeditor
#
# Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
# For licensing, see LICENSE.html or http://ckeditor.com/license
#

#
# On some specific Linux installations you could face problems with Firefox.
# It could give you errors when loading the editor saying that some illegal
# characters were found (three strange chars in the beginning of the file).
# This could happen if you map the .js or .css files to PHP, for example.
#
# Those characters are the Byte Order Mask (BOM) of the Unicode encoded files.
# All FCKeditor files are Unicode encoded.
#

AddType application/x-javascript .js
AddType text/css .css

#
# If PHP is mapped to handle XML files, you could have some issues. The
# following will disable it.
#
AddType text/xml .xml

This is the converted files I've got

# nginx configuration

location /directory/category {
rewrite ^/category\/(.+/)location/(.+)$ /browse_categories.php?id=$1&location=$2 break;
rewrite ^/category\/(.+)$ /browse_categories.php?id=$1 break;
}

location /directory/location {
rewrite ^/location\/(.+)$ /browse_locations.php?id=$1 break;
}

location /directory/pages {
rewrite ^/pages\/(.+)\.html$ /page.php?id=$1 break;
}

location = /directory/blog.html {
rewrite ^(.*)$ /blog.php break;
}

location /directory/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 /directory/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 /directory/ {
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 /directory/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;
}

location ~/files/\.(php|php3|php4|phtml|pl|cgi)$ {
deny all;
}

location ~ \.csv$ {
deny all;
}

But this dosn't seem to work, and as I'm new to using nginx I can't get my head around it. Can anyone help
Subject Author Posted

Converting Rewrite rules

akia June 27, 2012 05:42PM

Re: Converting Rewrite rules

Wolfsrudel June 28, 2012 03:47AM

Re: Converting Rewrite rules

akia June 29, 2012 04:11PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 312
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready