我正在将应用程序从Apache移动到nginx,并且我被重写部分卡住了。将htaccess重写转换为nginx重写
在我的Apache .htaccess中,我有这个。基本上,将一切,包括查询变种以我的index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?p=$1 [QSA,L]
里面的index.php我有一个非常基本的部分,打破下来,所以我可以路线访问者,他们需要去哪里,也处理查询变种
if (isset($_GET['p'])) {
$page = explode('/', $_GET['p']);
} else {
$page = NULL;
}
而且在脚本后
if ($page) {
} if ($page[0] == "stream") {
if (isset($page[1])) {
// Blah
}
}
}
同样在各种主题的PHP文件,我已经抓住我的URL与$_GET['id']
或瓦尔做各种功能。
例如http://example.com/verify?code=blah
该URI进入index.php,验证被发现是一个名为verify.php
的主题文件,在verify.php
内抓取代码url var。
我正在寻找与nginx一起复制,并陷入困境。我已经试过以下:
location/{
# try_files $uri $uri/ =404;
rewrite ^(.*)/?$ index.php?p=$1 last;
# try_files $uri $uri/ /index.php?p=$args;
# try_files $uri $uri/ /index.php?p=$query_string;
}
我甚至试过example from this answer,但仍然没有工作。
在这里,我试图把它应用到我的设置:
location/{
rewrite ^(.*)/?$ index.php?p=$1 last;
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^(.*)/?$ index.php?p=$1 last;
}
的注释的部分是我的试验和错误。关于如何将Apache复制到nginx格式的任何见解?
您可以将其标记为重复。起初那个引用的答案并没有解决我的问题,但最终确实如此。感谢 – Pat