如何将这个简单的htaccess重写规则移植到nginx

时间:2013-02-13 00:43:04

标签: .htaccess nginx rewrite modx

我的htaccess文件中有这个

RewriteEngine On                             
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f            #do not process for real files
RewriteCond %{REQUEST_FILENAME} !-d            #do not process for real folder
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]      #rewrite

我试图将此添加到我的nginx配置文件

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1 last;
}

在我的

server{...}

阻止成功有限,我得到了

http://example.com/about/contact.html> /index.php?q=/about/contact.html

而不是

http://example.com/about/contact.html> /index.php?q=about/contact.html

并且,虽然是次要的,但这领先/正在打破MODx。 (甚至在黑客修改$_GET['q']$_SERVER['QUERY_STRING']$_SERVER['REQUEST_URI'])

的价值时

[是的,我已经重新启动了nginx]

1 个答案:

答案 0 :(得分:1)

  

镆铘

MODx有一个带有示例nginx conf文件的手册页,对我有用; http://rtfm.modx.com/display/revolution20/Nginx+Server+Config