重写规则从Lighttpd Regex转换为NginX

时间:2013-08-13 04:44:16

标签: regex nginx rewrite lighttpd

不太确定从哪里开始。我有这个重写规则,我们使用lighttpd用于我们的应用程序,我们正在考虑将Web服务器移动到NginX进行标准化。

lighttpd.conf中的Lighttpd配置行:

url.rewrite-once = (
 ".*\?(.*)$" => "/index.php?$1",
 "^/js/.*$" => "$0",
 "^.*\.(js|ico|gif|jpg|png|css|swf |jar|class)$" => "$0",
 "" => "/index.php"
 )

首先,任何人都可以帮我翻译这些内容吗?我从别人那里继承了它,不知道这意味着什么?

接下来,如何在NginX中将这些行转换为可用的配置行?我甚至不确定为大家提供什么来帮助理解这条线。我所知道的是,当我们从lighttpd中删除这些行时,应用程序就会停止工作。我让我们的NginX在标准Php上使用Php-fpm在centos 6.4上工作。当我使用phpinfo文件时,NginX能够生成信息,但是当我们安装应用程序时,它会在错误日志文件中出错此错误。

2013/08/12 21:51:00 [error] 18844#0: *16 open() "/var/www/html/myapps/public/user/login" failed (2: No such file or directory), client: 192.168.8.100, server: _, request: "GET /user/login HTTP/1.1", host: "192.168.8.215"

在网页浏览器中,我收到了“ 404 not found ”错误。

另外,为了保持一致性,有人可以建议如何翻译这一行吗?

location / { if ( $uri !~ ^/(index\.php|css|images|core|uploads|js|robots\.txt) ) { rewrite ^ /index.php last; } } 

请告知我可以提供的其他信息以帮助翻译?我甚至不确定这是否是NginX问题或应用程序问题。非常感谢您的所有帮助。

1 个答案:

答案 0 :(得分:1)

我对lighttpd配置并不是很了解,你需要向我解释,以便我能用nginx格式编写它们。

另外我不知道将处理PHP的是什么,是fast-cgi还是fpm,还是什么?

server {
    server_name example.com; #replace with your domain name
    index index.php;
    location / {
        try_files $uri $uri/ /index.php$request_uri;
    }
    location ~* \.php$ {
        include        fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;

    }
}