Apache重写到Nginx

我试图在我的Nginx服务器上安装buggenie。 不幸的是,它位于一个子目录(我无能为力),并使用Apache重写所有的URL。 当我从子目录中移动了所有东西的时候,我取得了一些成功,但不幸的是主目录中有一些东西需要它。 无论如何,我有它提供的.htaccess文件,我需要知道如何将重写转换为nginx重写。 我的configuration文件在这里:

http://paste-bin.com/view/eb48c716

我认为主要的问题是RewriteBase …

抱歉join他们在一起,我目前无法添加超过1个url。

我知道这个问题是旧的,但find了一个与nginx 1.0.6运行bggenie 3.1.4的解决scheme:

server { server_name site.com; root /var/www/site/public_html/thebuggenie; large_client_header_buffers 4 8k; index index.php index.html; location ~ \..*/.*\.php$ { return 403; } location ~ \.php { #add fastcgi_param values to suit environment fastcgi_pass 127.0.0.1:9000; } location ~ /(?<suburi>.*){ set $suburi $1; try_files $uri $uri/ /index.php?url=$suburi&$args; } } 

一些笔记

  1. 根设置 – 虽然你可以提取和安装在/ var / www / site / public_html /,程序期望站点根目录在“thebuggenie”目录。

  2. 默认的位置块位置〜/(?…需要遵循的PHP fastcgi块。

如果任何人有进一步的增强/更优化的方法,我很乐意看到他们。

要完成jimg的回答,如果你的文档根目录指向thebuggenie安装目录(所以你可以简单地指向http://<your-server>/ ),用于nginx的适当的正则expression式是:

 location ~ /(.*) { try_files $uri $uri/ /index.php?url=$1&$args; } 

你仍然可以使用set $suburi $1; 如果你喜欢,但即使在jimg的例子中,你可以直接使用$1

听起来像软件devise与apache的依赖性很强。 我会在这个网站的Apache的前面使用nginx。 把Apache 8080本地主机或类似的东西。 对于静态文件,您仍然可以获得nginx的好处,而不必重写所有的规则。 否则,我会婊子thebuggenie,让他们为您翻译他们的Apache重写。 这是跛脚