10 Tháng 5, 2019 Tác giả: Thịnh Nguyễn Chuyên mục: Hosting & Domain, Thủ thuật NukeViet

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.

Tác giả: Thịnh Nguyễn

Chuyên gia chia sẻ kiến thức về lập trình, thiết kế web và tối ưu hệ thống server.

Chia sẻ bài viết này:

2 bình luận

  • Mr Son

    23/06/2019 lúc 09:41

    Mình hỏi chút. Web mình sao không lên được thứ hạng như của bạn nhỉ. Có cách gì lên được với từ thiết kế biệt thự không. Mong bạn tư vấn thêm

    • Thịnh Nguyễn

      19/07/2019 lúc 15:58

      Bạn muốn lên top thì phải bỏ tiền seo và chạy quảng cáo thui 😀

Để lại bình luận của bạn

Địa chỉ email của bạn sẽ không được công bố rộng rãi. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Hướng dẫn đưa website NukeViet từ localhost lên hosting bằng FileZilla

Hosting là dịch vụ lưu trữ các trang web trên máy chủ kết nối Internet và nó được phân ra nhiều thể loại như: Shared hosting, Free web hosting, Reseller hosting, Email hosting, File hosting, Windows hosting, Linux hosting, VPS Hosting, Dedicated Server, Adult Hosting. Đối với mỗi dịch vụ cung cấp đều có mức giá khác nhau đắt […]

Xem chi tiết →

Hướng dẫn bật tắt tính năng thông báo trong admin của nukeviet

Tính năng thông báo trong nukeviet nó thực sự là cần thiết nhưng đôi khi nó lại không cần thiết vì có thể gây phiền toái cho người quản trị. Nếu như khi bạn sử dụng tính năng này thì hệ thống sẽ tự động request và truy vấn cơ sở dữ liệu theo thời […]

Xem chi tiết →

Hướng dẫn cách đóng gói module và theme nukeviet

Đối với mã nguồn mở nào cũng vậy, sau khi bạn viết xong theme hay module hoặc một plugins nào đó thì bạn cần phải đóng gói sản phẩm để đảm bảo không bị thất lạc bất kỳ một file nào. Nhưng cũng tùy theo mã nguồn mà nó trang bị cho các lập trình […]

Xem chi tiết →