Need help with converting this htaccess to nginx rewrite
Jim Ohlstein
jim.ohlstein at gmail.com
Sat Feb 14 01:45:10 MSK 2009
I think you're pretty close.
Try
location / {
if ($request_filename ~ "favicon\.ico$") {
rewrite ^(.*)$ last;
}
### IMAGE RULES
rewrite ^/image\/3\/([0-9]+)\/([0-9]+)\/([1-9])\/([a-fA-f0-9]{3,6})(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
/symphony/image.php?param=3:$1:$2:$3:$4:$6:$7.$8 last;
rewrite ^/image\/2\/([0-9]+)\/([0-9]+)\/([1-9])(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
/symphony/image.php?param=2:$1:$2:$3:0:$5:$6.$7 last;
rewrite ^/image\/1\/([0-9]+)\/([0-9]+)(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
/symphony/image.php?param=1:$1:$2:0:0:$4:$5.$6 last;
rewrite ^/image(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
/symphony/image.php?param=0:0:0:0:0:$2:$3.$4 last;
### CHECK FOR TRAILING SLASH - Will ignore files
if (!-f $request_filename) {
rewrite ^/(.+)$ /$1/ permanent;
}
### MAIN REWRITE - This will ignore directories
if (!-d $request_filename) {
rewrite ^/(.+)$ /index.php?url=$1 last;
}
}
I'm not sure this will work but clearly you are missing some forward slashes in the image rules. Good luck!
Jim
> -----Original Message-----
> From: owner-nginx at sysoev.ru [mailto:owner-nginx at sysoev.ru] On Behalf Of
> Brian Zerangue
> Sent: Friday, February 13, 2009 4:59 PM
> To: nginx at sysoev.ru
> Subject: Re: Need help with converting this htaccess to nginx rewrite
>
> Sorry, I didn't realize that this was plain-text only... forgive me for
> the HTML in the last post. Here's my post in plain-text.
>
>
> I'm really interested in utilizing Nginx on my Slicehost account, but
> my
> main holdout is understanding how to adjust .htaccess files so that my
> site can function properly on Nginx.
>
> I've made an attempt, but I'm just not a regular expressions guy and am
> new to this part altogether. Unfortuantely, I'm having a difficult time
> moving over to Nginx rewrite rules. I'll post my attempt at the Nginx
> rewrite rules, but first I'm going to post the mod_rewrite rules of my
> Symphony CMS site, so we have the direct comparison. If anyone knows
> Nginx... your help is much appreciated!!!
>
> Here's the regular mod_rewrite for the index.php in document root
> folder
> for Symphony...
>
> Original Symphony 2 .htaccess
>
> ### DO NOT APPLY RULES WHEN REQUESTING "favicon.ico"
> RewriteCond %{REQUEST_FILENAME} favicon.ico [NC]
> RewriteRule .* - [S=14]
>
> ### IMAGE RULES
> RewriteRule
> ^image\/3\/([0-9]+)\/([0-9]+)\/([1-9])\/([a-fA-f0-
> 9]{3,6})(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=3:$1:$2:$3:$4:$6:$7.$8 [L]
> RewriteRule
> ^image\/2\/([0-9]+)\/([0-9]+)\/([1-
> 9])(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=2:$1:$2:$3:0:$5:$6.$7 [L]
> RewriteRule
> ^image\/1\/([0-9]+)\/([0-9]+)(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=1:$1:$2:0:0:$4:$5.$6 [L]
> RewriteRule ^image(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=0:0:0:0:0:$2:$3.$4 [L]
>
> ### CHECK FOR TRAILING SLASH - Will ignore files
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_URI} !/$
> RewriteCond %{REQUEST_URI} !(.*)/$
> RewriteRule ^(.*)$ /$1/ [L,R=301]
>
> ### MAIN REWRITE - This will ignore directories
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule ^(.*)\/$ /index.php?page=$1&%{QUERY_STRING} [L]
> My Nginx attempt
>
> I don't think this is right, but would love to get some input.
>
> location / {
> if ($request_filename="favicon.ico") {
> rewrite ^(.*)$ break;
> }
>
> ### IMAGE RULES
> rewrite
> ^image\/3\/([0-9]+)\/([0-9]+)\/([1-9])\/([a-fA-f0-
> 9]{3,6})(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=3:$1:$2:$3:$4:$6:$7.$8 last;
> rewrite
> ^image\/2\/([0-9]+)\/([0-9]+)\/([1-
> 9])(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=2:$1:$2:$3:0:$5:$6.$7 last;
> rewrite
> ^image\/1\/([0-9]+)\/([0-9]+)(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=1:$1:$2:0:0:$4:$5.$6 last;
> rewrite ^image(\/(0|1))?\/(.+)\.(jpg|gif|jpeg|png|bmp)$
> /symphony/image.php?param=0:0:0:0:0:$2:$3.$4 last;
>
> ### CHECK FOR TRAILING SLASH - Will ignore files
> if (!-f $request_filename) {
> rewrite ^/(.+)$ /$1/ permanent;
> }
>
> ### MAIN REWRITE - This will ignore directories
> if (!-d $request_filename) {
> rewrite ^/(.+)$ /index.php?url=$1 last;
> }
> }
> --
> Posted via http://www.ruby-forum.com/.
More information about the nginx
mailing list