隨着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