Mod rewrite 将lighttpd重写规则转换为nginx

Mod rewrite 将lighttpd重写规则转换为nginx,mod-rewrite,nginx,rewrite,lighttpd,Mod Rewrite,Nginx,Rewrite,Lighttpd,我有以下简单的lighttpd重写规则: $HTTP["host"] =~ "^(app\.mydomain\.com)$" { url.rewrite-once = ( "^[^.]*$" => "controller.php/$1" ) } 我正在尝试将此规则移植到nginx,并具有以下功能: server { listen 80; server_name app.mydomain.com; if ($host = 'app.m

我有以下简单的
lighttpd
重写规则:

$HTTP["host"] =~ "^(app\.mydomain\.com)$" {
    url.rewrite-once = (
            "^[^.]*$" => "controller.php/$1"
    )
}
我正在尝试将此规则移植到
nginx
,并具有以下功能:

server {
  listen 80;

  server_name app.mydomain.com;

  if ($host = 'app.mydomain.com') {
    rewrite ^[^.]*$ controller.php/$1 last;
  }

  root /srv/www/domains/app.mydomain.com;

  index index.php;

  access_log /var/log/nginx/domains/app.mydomain.com/access.log;
  error_log /var/log/nginx/domains/app.mydomain.com/error.log;

  include /etc/nginx/excludes.conf;
  include /etc/nginx/php.conf;
  include /etc/nginx/expires.conf;
}

问题是nginx的重写规则不能正常工作?知道我做错了什么吗?谢谢。

controller.php
前面需要一个斜杠,并且可能不需要重写if块,因为它是vhost的服务器名

rewrite ^[^.]*$ /controller.php/$1 last;