2017-04-01 85 views
0

我一直在努力将我过去的apache重写规则转换为nginx(也不确定是否将它放在正确的位置,所以如果能告诉我在哪里可以告诉我,放好它)。如何将此apache重写规则转换为nginx

基本上这是WordPress的在我的.htaccess文件的Apache重写规则:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^/?hosts/(.*)$ /user/$1 [R,L] 
</IfModule> 

正如你所看到的,我使用的这个规则,以便从重定向到example.com/hosts/username例子。 com/user/username

我已经使用这个转换工具https://labs.gidix.de/nginx/,它输出这个转换:rewrite ^/?hosts/(.*)$ /user/$1 last; - 但我试着把它放在Ajenti(控制面板)高级自定义配置中,但它不工作。

+0

尝试这种::'位置/ { 重写^ /主机/(.*)$ /用户/ $ 1重定向; }' –

回答

0

您可能需要将其设为外部重定向,这样WordPress才会注意到。最干净的解决办法是将其放置到自己的位置:

location ^~ /hosts/ { 
    rewrite ^/hosts(.*)$ /user$1 permanent; 
} 

更多见this document。 ?

1

作为一个选项

location ~ ^/hosts/(.*)$ { 
    return 301 $scheme://$host/user/$1; 
}