2016-04-03 176 views
2

随着Synology DSM6更新,我们现在使用Nginx而不是Apache。默认情况下,Nginx配置不允许wordpress永久链接(生成404)。DSM6:配置Nginx的Wordpress永久链接(避免404)

我读到的想法是将/ uri转换为/?p = $ uri,并将此配置放入服务器nginx配置的“位置”部分。

该配置在DSM6中的哪个位置?

回答

0

您是否尝试过用户配置?只要复制您的工作:

/etc/nginx/app.d/server.webstation-vhost.conf 

到:

/usr/local/etc/nginx/sites-enabled/httpd-vhost.conf-user 

,并重新命名server.webstation-vhost.confserver.webstation-vhost.conf.old什么的,然后重新启动的nginx(nginx -s reload

或者更好的是,删除你的虚拟主机(一个或多个)从webstation。唯一的问题是你需要手动更新SSL证书,而不是使用Web界面。

+0

的确,我使用/ etc/nginx/site-enabled(这是一个到你提到的目录的symb链接)。我甚至为每个手动创建的虚拟主机创建一个symb链接。我不再相信Synology,在更新后可以打破所有问题。 – user2668735

0

实际上,您可以轻松添加自定义指令,而无需修改DSM行为。

看看的/usr/local/etc/nginx/sites-enabled/httpd-vhost.conf-user的内容,看看那里的自定义配置有存储:

server { 
    [...] 
    server_name NAME 
    [...] 

    include /usr/local/etc/nginx/conf.d/778943ad-0dc4-40ae-bb7f-7b2285e3203b/user.conf*; 
} 

然后,你只需要创建该文件/usr/local/etc/nginx/conf.d/778943ad-0dc4-40ae-bb7f-7b2285e3203b/user.conf.wordpress-permalink,内容如下:

location /{ 
try_files $uri $uri/ /index.php?$args; 
} 

并重启nginx的:

synoservicecfg --restart nginx 

它不会打破未来的DSM更新(因为它是一个支持的定制)

+0

“778943ad-0dc4-40ae-bb7f-7b2285e3203b”似乎是生成的东西,也许只有一次,但真的,它的丑陋。我现在手动完成所有工作,没有“DSM魔术配置”。 – user2668735

+0

是的,标签是自动生成的,但这是插入自定义的便捷方式,同时保持下次升级的兼容性。但是,替换配置文件也是对的,我同意。这取决于你的喜好 – Fabrice