Rewrite problems

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.

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;
}
}

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;
}
}