随着 Synology DSM6 的更新,我们现在必须使用 Nginx 而不是 Apache。默认情况下 Nginx 配置不允许 wordpress 永久链接(生成 404)。
我读到的想法是在 /?p=$uri 中转换 /uri 并将此配置放在服务器 nginx 配置的“位置”部分。
在 DSM6 中究竟把这个配置放在哪里?
随着 Synology DSM6 的更新,我们现在必须使用 Nginx 而不是 Apache。默认情况下 Nginx 配置不允许 wordpress 永久链接(生成 404)。
我读到的想法是在 /?p=$uri 中转换 /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
toserver.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 更新(因为它是受支持的自定义)