Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > Linux Forums > HOWTO-Related Questions

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 26th March 2013, 00:47
ababneh ababneh is offline
Junior Member
 
Join Date: Mar 2013
Posts: 28
Thanks: 0
Thanked 1 Time in 1 Post
Default Please help convert htaccess to nginx

Hey,

I installed ispconfig/nginx on ubuntu 12.10 following your great how-to:

http://www.howtoforge.com/perfect-se...ispconfig-3-p4

I need to apply rewrite rules to nginx from a .haccess file with these contents:

Code:
RewriteEngine On
RewriteRule ^index.html$ index.php
RewriteRule ^browse-(.*)-videos.html$ category.php?cat=$1
RewriteRule ^browse-(.*)-videos-([0-9]+)-(.*).html$ category.php?cat=$1&page=$2&sortby=$3

RewriteRule ^register.html$ register.php
RewriteRule ^contact_us.html$ contact_us.php
RewriteRule ^edit_profile.html$ edit_profile.php
RewriteRule ^suggest.html$ suggest.php
RewriteRule ^upload.html$ upload.php
RewriteRule ^upload_avatar.html$ upload_avatar.php
RewriteRule ^suggest.html$ suggest.php

RewriteRule ^favorites.html(.*)$ favorites.php$1
RewriteRule ^login.html(.*)$ login.php$1
RewriteRule ^newvideos.html(.*)$ newvideos.php$1
RewriteRule ^topvideos.html(.*)$ topvideos.php$1
RewriteRule ^profile.html(.*)$ profile.php$1
RewriteRule ^favorites.html(.*)$ favorites.php$1
RewriteRule ^playlist/(.*)$ myfavorites.php?u=$1
RewriteRule ^memberlist.html(.*)$ memberlist.php$1

RewriteRule ^articles/read-(.*)_([0-9]+).html$ article_read.php?a=$2
RewriteRule ^articles/index-([0-9]+).html$ article.php?page=$1
RewriteRule ^articles/browse-(.*)-([0-9]+).html$ article.php?c=$1&page=$2
RewriteRule ^articles/tag/([^/]+)/page-([0-9]+)(/)?$ article.php?tag=$1&page=$2
RewriteRule ^articles/tag/([^/]+)(/)?$ article.php?tag=$1&page=1
RewriteRule ^articles/popular-([0-9]+).html$ article.php?show=popular&page=$1
RewriteRule ^articles(\/|.html)?$ article.php
RewriteRule ^article(\/|.html)?$ article.php
RewriteRule ^pages/(.*)\.html$ page.php?name=$1

RewriteRule ^tags/([^/]+)/$ tag.php?t=$1&page=1
RewriteRule ^tags/([^/]+)/page-([0-9]+)(/)?$ tag.php?t=$1&page=$2
RewriteRule ^(.*)/(.*)-video_(.*).html$ musicvideo.php?vid=$3
RewriteRule ^([^/]*)-video_(.*).html$ watch.php?vid=$2
RewriteRule ^fpembed-(.*).swf$ fpembed.php?vid=$1
RewriteRule ^rss.xml$ rss.php [L]
I am not an expert in these things so it is all try and error. I used this online converter http://winginx.com/htaccess and I got this output:

Code:
# nginx configuration

location = /index.html {
  rewrite ^(.*)$ /index.php;
}

location /browse {
  rewrite ^/browse-(.*)-videos.html$ /category.php?cat=$1;
  rewrite ^/browse-(.*)-videos-([0-9]+)-(.*).html$ /category.php?cat=$1&page=$2&sortby=$3;
}

location = /register.html {
  rewrite ^(.*)$ /register.php;
}

location = /contact_us.html {
  rewrite ^(.*)$ /contact_us.php;
}

location = /edit_profile.html {
  rewrite ^(.*)$ /edit_profile.php;
}

location = /suggest.html {
  rewrite ^(.*)$ /suggest.php;
  rewrite ^(.*)$ /suggest.php;
}

location = /upload.html {
  rewrite ^(.*)$ /upload.php;
}

location = /upload_avatar.html {
  rewrite ^(.*)$ /upload_avatar.php;
}

location /favorites {
  rewrite ^/favorites.html(.*)$ /favorites.php$1;
  rewrite ^/favorites.html(.*)$ /favorites.php$1;
}

location /login {
  rewrite ^/login.html(.*)$ /login.php$1;
}

location /newvideos {
  rewrite ^/newvideos.html(.*)$ /newvideos.php$1;
}

location /topvideos {
  rewrite ^/topvideos.html(.*)$ /topvideos.php$1;
}

location /profile {
  rewrite ^/profile.html(.*)$ /profile.php$1;
}

location /playlist {
  rewrite ^/playlist/(.*)$ /myfavorites.php?u=$1;
}

location /memberlist {
  rewrite ^/memberlist.html(.*)$ /memberlist.php$1;
}

location /articles {
  rewrite ^/articles/read-(.*)_([0-9]+).html$ /article_read.php?a=$2;
  rewrite ^/articles/index-([0-9]+).html$ /article.php?page=$1;
  rewrite ^/articles/browse-(.*)-([0-9]+).html$ /article.php?c=$1&page=$2;
  rewrite ^/articles/tag/([^/]+)/page-([0-9]+)(/)?$ /article.php?tag=$1&page=$2;
  rewrite ^/articles/tag/([^/]+)(/)?$ /article.php?tag=$1&page=1;
  rewrite ^/articles/popular-([0-9]+).html$ /article.php?show=popular&page=$1;
  rewrite ^/articles(\/|.html)?$ /article.php;
}

location /article {
  rewrite ^/article(\/|.html)?$ /article.php;
}

location /pages {
  rewrite ^/pages/(.*)\.html$ /page.php?name=$1;
}

location /tags {
  rewrite ^/tags/([^/]+)/$ /tag.php?t=$1&page=1;
  rewrite ^/tags/([^/]+)/page-([0-9]+)(/)?$ /tag.php?t=$1&page=$2;
}

location / {
  rewrite ^/(.*)/(.*)-video_(.*).html$ /musicvideo.php?vid=$3;
  rewrite ^/([^/]*)-video_(.*).html$ /watch.php?vid=$2;
}

location /fpembed {
  rewrite ^/fpembed-(.*).swf$ /fpembed.php?vid=$1;
}

location = /rss.xml {
  rewrite ^(.*)$ /rss.php break;
}
So then from SSH I typed:
nano /etc/nginx/nginx.conf
and pasted the above content under http {
then ran:
/etc/init.d/nginx start
and here is the error message:
Code:
Starting nginx: nginx: [emerg] "location" directive is not allowed here in /etc/nginx/nginx.conf:75
nginx: configuration file /etc/nginx/nginx.conf test failed
Ok so I used another converter located here http://www.anilcetin.com/convert-apa...cess-to-nginx/
its output is:
Code:
	rewrite ^/index.html$ /index.php;
	rewrite ^/browse-(.*)-videos.html$ /category.php?cat=$1;
	rewrite ^/browse-(.*)-videos-([0-9]+)-(.*).html$ /category.php?cat=$1&page=$2&sortby=$3;
	rewrite ^/register.html$ /register.php;
	rewrite ^/contact_us.html$ /contact_us.php;
	rewrite ^/edit_profile.html$ /edit_profile.php;
	rewrite ^/suggest.html$ /suggest.php;
	rewrite ^/upload.html$ /upload.php;
	rewrite ^/upload_avatar.html$ /upload_avatar.php;
	rewrite ^/suggest.html$ /suggest.php;
	rewrite ^/favorites.html(.*)$ /favorites.php$1;
	rewrite ^/login.html(.*)$ /login.php$1;
	rewrite ^/newvideos.html(.*)$ /newvideos.php$1;
	rewrite ^/topvideos.html(.*)$ /topvideos.php$1;
	rewrite ^/profile.html(.*)$ /profile.php$1;
	rewrite ^/favorites.html(.*)$ /favorites.php$1;
	rewrite ^/playlist/(.*)$ /myfavorites.php?u=$1;
	rewrite ^/memberlist.html(.*)$ /memberlist.php$1;
	rewrite ^/articles/read-(.*)_([0-9]+).html$ /article_read.php?a=$2;
	rewrite ^/articles/index-([0-9]+).html$ /article.php?page=$1;
	rewrite ^/articles/browse-(.*)-([0-9]+).html$ /article.php?c=$1&page=$2;
	rewrite ^/articles/tag/([^/]+)/page-([0-9]+)(/)?$ /article.php?tag=$1&page=$2;
	rewrite ^/articles/tag/([^/]+)(/)?$ /article.php?tag=$1&page=1;
	rewrite ^/articles/popular-([0-9]+).html$ /article.php?show=popular&page=$1;
	rewrite ^/articles(/|.html)?$ /article.php;
	rewrite ^/article(/|.html)?$ /article.php;
	rewrite ^/pages/(.*).html$ /page.php?name=$1;
	rewrite ^/tags/([^/]+)/$ /tag.php?t=$1&page=1;
	rewrite ^/tags/([^/]+)/page-([0-9]+)(/)?$ /tag.php?t=$1&page=$2;
	rewrite ^/(.*)/(.*)-video_(.*).html$ /musicvideo.php?vid=$3;
	rewrite ^/([^/]*)-video_(.*).html$ /watch.php?vid=$2;
	rewrite ^/fpembed-(.*).swf$ /fpembed.php?vid=$1;
	rewrite ^/rss.xml$ /rss.php last;
and when I copy this code into nginx conf and start nginx here is what I get:
Code:
Starting nginx: nginx: [emerg] "rewrite" directive is not allowed here in /etc/nginx/nginx.conf:73
nginx: configuration file /etc/nginx/nginx.conf test failed
I am lost! Please anyone tell me what I am doing wrong!!

Thank you for your time..
Reply With Quote
Sponsored Links
 

Bookmarks

Tags
nginx, rewrite

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Apche rewrite rule convert to nginx nerijussk Server Operation 3 26th November 2012 19:15
500 Internal Server Error BoloMarkIII Installation/Configuration 4 21st October 2010 17:56
Forbidden 403; Samba access; config of maildeamon fawkes Installation/Configuration 4 14th January 2010 19:16
Yet Another Internal Server Error/.htaccess Post n0h4t Installation/Configuration 5 16th June 2009 18:43
ispconfig and mambo shajazzi Installation/Configuration 70 28th March 2006 20:29


All times are GMT +2. The time now is 18:58.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.