lnmp 環境設定 301 重定向的時候,首先要把域名解析到 VPS 上面,也就是不帶 www 的域名和帶 www 的域名都解析到 IP 上。理論上是 48 小時内生效的,也有部分國内域名商 10 分鐘就可以用了,這塊你得有耐心等待,也不妨礙在這期間做下面的 301 設定工作。
一、如果你使用 wordpress 部落格作為網站程式,做 301 重定向隻需要兩步就可以完成。
1、要在 wp 管理背景的設定-正常中如下圖設定。

2、需要對網站 conf 檔案進行修改配置。比如我對外公開的網站域名設定為帶 www 的域名,那麼不帶 www 的域名在 wordpress 内部會重新定向到帶 www 的域名。隻要如下圖所示紅框部分,在 lnmp 環境中的 server_name 後面把不帶 www 的域名添加上去就可以了。
使用 wordpress 部落格程式的到此就設定結束了,直接到站長工具檢查 301 是否生效吧。
二、如果你安裝其他 php 程式就需要手動設定一下了。
1、打開/usr/local/nginx/conf/vhost/你網站域名.conf,用 vi 指令修改:
省略掉部分虛拟主機 server 配置内容
server {
listen 80;
server_name vpsss.net;
return 301 https://www.vpsss.net$request_uri;
}
為了給大家提供更直覺的參考,我就把改好的放上來,包括前後的指令,記得把域名改成你自己的。從下面截圖可見,其實隻多了紅框裡面的四行(截圖裡 www.vpsss.net 隻用來舉例子,wordpress 部落格是不需要這麼設定 301 的)。
網上有很多種 lnmp 環境 301 重定向的代碼,隻有這種才是 php 官方推薦的也是最正規的。
2、重新開機 lnmp,指令如下;
lnmp restart
或者重新開機 nginx,指令如下:
/etc/init.d/nginx restart
這樣就完成 lnmp 環境的 301 重定向了。你可以通過浏覽器網址輸入不帶 WWW 的域名,是不是直接跳轉到帶 WWW 的。
3、通過站長工具檢測是否正确。
以下是 vpsss.net 的 HTTP 狀态查詢結果:傳回狀态碼 301,說明重定向成功了。