2012-02-02 56 views
0

我试图移植此重写规则以用于nginx Web服务器。将Apache htaccess重写条件转换为nginx

RewriteBase /srv/www/htdocs 
RewriteCond %{REQUEST_URI} ^/(files.*)$ 
RewriteRule ^(.*)$ %1 [L] 

我不知道如何在nginx.conf中解决这个问题。 任何人都可以帮忙吗?

感谢,帕特里斯

+0

只是好奇;规则应该做什么?因为我看它的方式,它会将'/ files.example'这样的urls改写成'/ files/example',这显然是无用的。 – Gerben 2012-02-02 19:00:04

回答

0

这可能是更简单:

if ($uri ~ "^/(files.*)$") { 
    rewrite ^/(.*)$ /$1 last; 
} 
0

感谢您的快速解答!最后,我解决了类似于Sergeis建议的这个问题,但是嵌套了一个条件。

location/{ 
    root /srv/www/htdocs; 

    # all under "/files/" breaks further processing 
    location ~ ^/files(.*)$ { 
     break; 
    } 

    # rewrite rules for all paths not under "/files/" 
    if (!-e $request_filename) { 
     rewrite ^/([^/\.]+)((\/?)(.*?))$ /process.php?id=$1&path=$2 last; 
    } 

}