2016-04-03 175 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