當前位置 主頁 > 服務器問題 > nginx問題匯總 > 最大化 縮小

                    nginx中域名、目錄的301重定向配置示例

                    欄目:nginx問題匯總 時間:2018-10-01 16:20

                    這篇文章主要介紹了nginx中域名、目錄的301重定向配置示例,分為域名和域名間的跳轉,目錄跳轉等,需要的朋友可以參考下

                    301重定向不陌生, 有時候有需求把某目錄整個重定向到一個二級域名,或者不帶www的頂級域名請求全部重定向到帶www的二級域名.如果是Apache,需要配置.htaccess,nginx不支持,需要在配置文件里面使用rewrite指令來實現。

                    頂級域名重定向到www
                    復制代碼 代碼如下:
                    server {
                     server_name jb51.net;
                     rewrite ^/(.*)$ //www.ny97.cn/$1 permanent;
                     }
                    如上配置,所以jb51.net的請求都會重定向到www.ny97.cn,301重定向對SEO很有幫助.這個配置大家用的最多。

                    www二級域名重定向到頂級域名
                    復制代碼 代碼如下:
                    server {
                     server_name www.ny97.cn;
                     rewrite ^/(.*)$ http://domain.com/$1 permanent;
                     }
                    江湖盛傳頂級域名的權重會比www二級域名的權重高,有些seoer會要求運維一定要把www的請求轉到頂級域名,和上面的做法相反。

                    目錄重定向
                    復制代碼 代碼如下:
                    if ( $request_filename ~ nginxjiaocheng/ ) {
                     rewrite ^ //www.ny97.cn/nginx/? permanent;
                     }
                    目錄跳轉新域名
                    復制代碼 代碼如下:
                    if ( $request_filename ~ nginx/ ) {
                     rewrite ^ http://nginx.jb51.net/? permanent;
                    }
                    nginx這個欄目太火了,打算專門弄一個域名。

                    附:域名之間的301跳轉和測試方法

                    一、相同根域名與子域名之間的跳轉

                    第一種情況:訪問根域名重定向到www子域名 (Vhost 通常綁定了多個域名,這樣做可以精確定位到某個域名,不會造成非本域名跳轉到本域名的情況)

                    server {
                        server_name www.ny97.cn jb51.net;
                        if ($host = 'jb51.net' ) {
                            rewrite ^/(.*)$ //www.ny97.cn/$1 permanent;
                        }

                    二、不同域名間的301跳轉

                    第一種情況:訪問A站定向到B站
                    復制代碼 代碼如下:server {
                        server_name www.ny97.cn;
                        rewrite ^(.*) //www.ny97.cn$1 permanent;
                    }

                    第二種情況:不是訪問A站的全部重定向到指定頁面
                    復制代碼 代碼如下:server {
                        server_name www.ny97.cn;
                        if ($host != 'jb51.net') {
                            rewrite ^/(.*)$ //www.ny97.cn/$1 permanent;
                        }
                    }

                    如果寫在第一個server段
                    使用IP訪問時也將被重定向

                    301重定向狀態在線檢測工具:http://web-sniffer.net/

                    返回了這句才算是301重定向成功:
                    復制代碼 代碼如下:Status: HTTP/1.1 301 Moved Permanently

                  快乐时时彩论坛