Cấu hình Rewrite Sitemap NukeViet trên VPS Nginx

Đối với tất cả các website hiện nay đều có một sitemap riêng dùng để tạo một danh sách các url và việc này sẽ gửi tới trang Google Webmaster Tools mà bây giờ đã đổi thành Google Search Console. Chính vì điều này mà mã nguồn mở NukeViet cũng phải có nhưng vì một số nguyên do cơ bản đó là khi bạn cài đặt hoặc quản trị website NukeViet trên VPS Nginx thì bạn sẽ gặp phải vấn đề rất chi là oái oăm mà người quản trị web nào cũng ái ngại đó là sitemap sẽ không sinh ra mà thay vào đó nó sẽ load toàn bộ nội dung trên trang chủ. Tuy nhiên, vấn đề đó không khó nếu bạn khá là sành sỏi khi sử dụng VPS Nginx.

Như các bạn đã biết thì đối với Nginx nó sẽ không sử dụng tập tin .htaccess. Chính vì điều này mà khi bạn truy cập vào địa chỉ domain.com/sitemap.xml mà sử dụng mã nguồn mở NukeViet thì đúng là số quá đen và sẽ phải tìm cách khắc phục. Như mình đã lướt web từ trang trong nước cho tới trang nước ngoài thì cũng có hướng dẫn nhưng không chi tiết và thực tế cho lắm và chỉ xoay quanh mã nguồn wordpress hay là joomla và các mã nguồn hoặc framework khác mà thôi. Chính vì thế mà hôm nay mình chia sẻ chút ít để các bạn có thể tạo sitemap cho mã nguồn mở NukeViet trên VPS Nginx.

Bước 1: Đầu tiên bạn cần truy cập vào vps thông qua ftp hoặc sftp của bạn.

Bước 2: Tiếp đến bạn truy cập vào đường dẫn /etc/nginx/conf.d.

Bước 3: Tại đây bạn mở file domain.com.conf (cụ thể là tên domain .com hoặc .net,… rồi tiếp đến phần mở rộng là .conf). Lưu ý là bạn nên sử dụng notepad++ để đọc các định dạng này thông qua ftp như filezilla,.. hoặc cũng có thể tải về máy tính và sử dụng phần mềm notepad hoặc notepad++ rồi chỉnh sửa

Bước 4: Tiếp theo bạn tìm đến dòng lệnh sau:

location / {

try_files $uri $uri/ /index.php?$args;

}

Bước 5: Bạn tiến hành thêm vào trên dòng lệnh đó một đoạn lệnh sau

if ($request_filename ~ /robots.txt$){
    rewrite ^(.*)$ /robots.php?action=$http_host break;
  }

        # Thiết lập rewrite chỉ có từ NukeViet 4.3.00
  rewrite ^/install/check\.rewrite$ /install/rewrite.php break;

  rewrite ^/(.*?)sitemap\.xml$ /index.php?nv=SitemapIndex break;
  rewrite "^/(.*?)sitemap\-([a-z]{2})\.xml$" /index.php?language=$2&nv=SitemapIndex break;
  rewrite "^/(.*?)sitemap\-([a-z]{2})\.([a-zA-Z0-9-]+)\.xml$" /index.php?language=$2&nv=$3&op=sitemap break;

  if (!-e $request_filename){
    rewrite (.*)(\/|\.html)$ /index.php;
    rewrite /(.*)tag/(.*)$ /index.php;
  }
  
  rewrite ^/seek\/q\=([^?]+)$ /index.php?nv=seek&q=$1 break;
  rewrite ^/search\/q\=([^?]+)$ /index.php?nv=news&op=search&q=$1 break;
  rewrite ^/([a-zA-Z0-9\-]+)\/search\/q\=([^?]+)$ /index.php?nv=$1&op=search&q=$2 break; 
  rewrite ^/([a-zA-Z0-9-\/]+)\/([a-zA-Z0-9-]+)$ /$1/$2/ break; 
  rewrite ^/([a-zA-Z0-9-]+)$ /$1/ break;		

  location ~ ^/admin/([a-z0-9]+)/(.*)$ {
    deny all;
  }

  location ~ ^/(config|includes|install|vendor)/(.*)$ {
    deny all;
  }

  location ~ ^/data/(cache|ip|ip6|logs)/(.*)$ {
    deny all;
  }

  location ~ ^/(files|uploads|themes)/(.*).(php|ini|tpl|php3|php4|php5|phtml|shtml|inc|pl|py|jsp|sh|cgi)$ {
    deny all;
  }

Bước 6: Sau đó thì lưu lại và tiến hành up đè lên file như ở bước 3 lên vps.

Bước 7: Cuối cùng là bạn tiến hành chạy lệnh sau để hệ thống cập nhật lại thông tin

service php-fpm restart
service nginx restart

Sau khi hệ thống đã ghi nhận chạy lại thì bạn bây giờ có thể truy cập vào địa chỉ: domain.com/sitemap.xml như bình thường và nó sẽ hiện ra danh sách các link xml con của hệ thống nukeviet sinh ra như bình thường khi bạn cài nó trên vps apache hay trên xampp

Khi đã có sitemap nukeviet bạn có thể tiến hành gửi submit sitemap nukeviet lên Google Search Console một cách bình thường.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back To Top