# Rewrite problems

**URL:** <https://www.ruby-forum.com/t/rewrite-problems/198036>\
**Category:** NGINX\
**Created:** [October 25, 2010, 1:00pm UTC](https://www.ruby-forum.com/t/rewrite-problems/198036 "2010-10-25T13:00:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [October 25, 2010, 1:00pm UTC](https://www.ruby-forum.com/t/rewrite-problems/198036/1 "2010-10-25T13:00:07Z")

</div>

Hi all,

What’s the difference between below two conf?

Nginx can start normally with both conf, but rewrite only works fine  
with  
the first conf.

1. 

server {  
listen 80; ## listen for ipv4  
listen [::]:80 default ipv6only=on; ## listen for ipv6  
server\_name localhost;  
access\_log /var/log/nginx/nginx.log;  
log\_format access '$remote\_addr - $remote\_user [$time\_local] “$request”  
’  
'$status $body\_bytes\_sent “$http\_referer” ’  
‘"$http\_user\_agent" $http\_x\_forwarded\_for’;  
location / {  
root /var/www/html;  
index index.htm index.php index.html;

rewrite ^([^.]_)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2  
last;  
rewrite ^([^.]_)/article-([0-9]+)-([0-9]+).html$  
$1/portal.php?mod=view&aid=$2&page=$3 last;  
rewrite ^([^.]_)/forum-(\w+)-([0-9]+).html$  
$1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;  
rewrite ^([^.]_)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$  
$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;  
rewrite ^([^.]_)/group-([0-9]+)-([0-9]+).html$  
$1/forum.php?mod=group&fid=$2&page=$3 last;  
rewrite ^([^.]_)/space-(username|uid)-(.+).html$  
$1/home.php?mod=space&$2=$3 last;  
rewrite ^([^.]\*)/([a-z]+)-(.+).html$ $1/$2.php?rewrite=$3 last;  
if (!-e $request\_filename) {  
return 404;  
}  
}  
location ~ .php$ {  
fastcgi\_pass unix:/tmp/php-cgi.sock;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_FILENAME /var/www/html$fastcgi\_script\_name;  
include fastcgi\_params;  
}  
}

1. 

server {  
listen 80; ## listen for ipv4  
listen [::]:80 default ipv6only=on; ## listen for ipv6  
server\_name localhost;  
access\_log /var/log/nginx/nginx.log;  
log\_format access '$remote\_addr - $remote\_user [$time\_local] “$request”  
’  
'$status $body\_bytes\_sent “$http\_referer” ’  
‘"$http\_user\_agent" $http\_x\_forwarded\_for’;  
location / {  
root /var/www/html;  
index index.htm index.php index.html;  
}  
rewrite ^([^.]_)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2  
last;  
rewrite ^([^.]_)/article-([0-9]+)-([0-9]+).html$  
$1/portal.php?mod=view&aid=$2&page=$3 last;  
rewrite ^([^.]_)/forum-(\w+)-([0-9]+).html$  
$1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;  
rewrite ^([^.]_)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$  
$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;  
rewrite ^([^.]_)/group-([0-9]+)-([0-9]+).html$  
$1/forum.php?mod=group&fid=$2&page=$3 last;  
rewrite ^([^.]_)/space-(username|uid)-(.+).html$  
$1/home.php?mod=space&$2=$3 last;  
rewrite ^([^.]\*)/([a-z]+)-(.+).html$ $1/$2.php?rewrite=$3 last;  
if (!-e $request\_filename) {  
return 404;  
}  
location ~ .php$ {  
fastcgi\_pass unix:/tmp/php-cgi.sock;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_FILENAME /var/www/html$fastcgi\_script\_name;  
include fastcgi\_params;  
}  
}
