随着Synology DSM6更新,我们现在使用Nginx而不是Apache。默认情况下,Nginx配置不允许wordpress永久链接(生成404)。DSM6:配置Nginx的Wordpress永久链接(避免404)
我读到的想法是将/ uri转换为/?p = $ uri,并将此配置放入服务器nginx配置的“位置”部分。
该配置在DSM6中的哪个位置?
随着Synology DSM6更新,我们现在使用Nginx而不是Apache。默认情况下,Nginx配置不允许wordpress永久链接(生成404)。DSM6:配置Nginx的Wordpress永久链接(避免404)
我读到的想法是将/ uri转换为/?p = $ uri,并将此配置放入服务器nginx配置的“位置”部分。
该配置在DSM6中的哪个位置?
您是否尝试过用户配置?只要复制您的工作:
/etc/nginx/app.d/server.webstation-vhost.conf
到:
/usr/local/etc/nginx/sites-enabled/httpd-vhost.conf-user
,并重新命名server.webstation-vhost.conf
到server.webstation-vhost.conf.old
什么的,然后重新启动的nginx(nginx -s reload
)
或者更好的是,删除你的虚拟主机(一个或多个)从webstation。唯一的问题是你需要手动更新SSL证书,而不是使用Web界面。
实际上,您可以轻松添加自定义指令,而无需修改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更新(因为它是一个支持的定制)
“778943ad-0dc4-40ae-bb7f-7b2285e3203b”似乎是生成的东西,也许只有一次,但真的,它的丑陋。我现在手动完成所有工作,没有“DSM魔术配置”。 – user2668735
是的,标签是自动生成的,但这是插入自定义的便捷方式,同时保持下次升级的兼容性。但是,替换配置文件也是对的,我同意。这取决于你的喜好 – Fabrice
的确,我使用/ etc/nginx/site-enabled(这是一个到你提到的目录的symb链接)。我甚至为每个手动创建的虚拟主机创建一个symb链接。我不再相信Synology,在更新后可以打破所有问题。 – user2668735