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;