Khác với Apache, Nginx không sử dụng file .htaccess nên khi bạn cần rewrite url sẽ phải convert qua rule của Nginx. Trong bài viết này, mình sẽ đưa ra một số ví dụ các rule của Nginx sử dụng để rewrite url, redirect và một số cấu hình cần thiết khác.

Khi sử dụng, bạn hãy thêm vào file cấu hình conf của tên miền, với HocVPS Script thì các file cấu hình này thường nằm trong thư mục /etc/nginx/conf.d/

Canonical URLs

Đảm bảo website của bạn được search engine index một đường dẫn duy nhất.

www.mydomain.com -> mydomain.com

Redirect toàn bộ request từ www.mydomain.com sang mydomain.com, kèm theo cả đường dẫn và tham số phía sau url.

server {
      server_name www.mydomain.com;
      rewrite ^(.*) $scheme://mydomain.com$1 permanent;
}

mydomain.com -> www.mydomain.com

Redirect toàn bộ request từ mydomain.com sang www.mydomain.com, kèm theo cả đường dẫn và tham số phía sau url.

server {
      server_name mydomain.com;
      rewrite ^(.*) $scheme://www.mydomain.com$1 permanent;
}

SSL Sites

Google hiện tại đang sử dụng SSL là một yếu tố xếp hạng, nếu bạn sử dụng các site eCommerce, hãy sử dụng SSL.

Rule bên dưới sẽ redirect tất cả request sử dụng HTTPS, trường hợp này giả sử bạn sử dụng www.domain.com làm tên miền chính.

# Tells the browser to always force SSL.
if ($scheme != "https") {
    rewrite ^ https://www.mydomain.com$uri permanent;
}
if ($host != "www.mydomain.com") {
    rewrite ^ https://www.mydomain.com$uri permanent;
}

Bắt buộc sử dụng SSL

Bắt buộc phải sử dụng SSL với một đường dẫn bất kỳ:

set $redirect false; 
if ($request_uri ~ ^/manager(\/)?$ ) { 
    set $redirect true; 
} 
if ($scheme = https) { 
    set $redirect false; 
} 
if ($redirect = true) { 
    return 301 https://www.domain.com$request_uri; 
}

Tối ưu Browser Caching

Bằng việc sử dụng browser caching, website của bạn sẽ load nhanh hơn rất nhiều kể từ sau lần visit đầu tiên:

location ~* \.(?:ico|css|js|jpe?g|png|gif|svg|pdf|mov|mp4|mp3|woff)$ {
    expires 7d;
    add_header Pragma public;
    add_header Cache-Control "public";
    gzip_vary on;
}

Giới hạn IP truy cập

Trong trường hợp bạn muốn giới hạn IP truy cập, hãy sử dụng rule bên dưới:

location /manager/ {
    # block one workstation
    deny 192.168.1.1;

    # block anyone in 127.0.1.1/24
    allow   127.0.1.1/24;
    
    # allow anyone in 192.168.1.0/24
    allow   192.168.1.0/24;
    
    # allow one workstation
    allow 127.0.0.1;

    # drop rest of the world 
    deny all;
}

Ngăn những site khác sử dụng hình ảnh

Với đoạn code dưới, bạn sẽ hạn chế những site khác sử dụng hình ảnh trực tiếp:

location ~ .(gif|png|jpe?g)$ {
     valid_referers none blocked .domain.com;
     if ($invalid_referer) {
        return   403;
    }
}

Nếu bạn muốn thay vì báo lỗi mà hiển thị một hình ảnh khác, hãy  sử dụng code bên dưới:

location ~ .(gif|png|jpe?g)$ {
     valid_referers none blocked .domain.com;
     if ($invalid_referer) {
        rewrite (.*)\.(jpg|jpeg|png|gif)$ http://www.domain.com/images/warning.jpg;
    }
}

Bảo vệ thư mục bằng mật khẩu

Đầu tiên, bạn cần sử dụng tool này để tạo file .htpasswd, sau đó dùng đoạn code bên dưới, giả sử mình lưu ở /root/.htpasswd

location /protectme/ {
    auth_basic "Restricted";
    auth_basic_user_file /root/.htpasswd;
}

Rewrite URL

Ví dụ bên dưới giả sử bạn muốn rewrite (không phải redirect) đường dẫn http://domain.com/listing/123 thành http://domain.com/listing.php?id=123

rewrite ^/listing/(.*)$ /listing.php?id=$1 last;

(.*) ở đây là regular expression, đại diện cho bất kỳ ký tự nào. Nếu thêm regular expression, bạn sử dụng tương ứng $2, $3

Redirect URL cũ sang URL mới

Redirect /someoldarticle.html sang /some/newarticle.html

rewrite ^/someoldarticle\.html /some/newarticle.html permanent;

Redirect domain cũ sang domain mới

Redirect http://olddomain.com và toàn bộ đường dẫn con sang domain mới http://newdomain.com

rewrite ^(.*) http://newdomain.com$1 permanent;

Redirect IP server sang domain bất kỳ

Mục đích khi truy cập vào IP server, thay vì hiển thị nội dung mặc định của Nginx, người dùng sẽ được tự động redirect đến một địa chỉ website nào đó, ví dụ domain.com.

Bạn hãy mở file cấu hình domain chính, tìm dòng nào có nội dung là listen 80 default_server; thì thay bằng listen 80; (xóa default_server). Tiếp theo, copy paste đoạn cấu hình dưới lên trên cùng file .conf, khởi động lại Nginx là xong:

server {
        listen       80  default_server;
        server_name  _;

        rewrite ^(.*) http://domain.com$1 permanent;
}

Chạy WordPress ở Sub-folder

Để chạy được WordPress ở thư mục con, bạn hãy thêm đoạn code sau vào đằng trước block location / { ... }

location /demo/ {
    try_files $uri $uri/ /demo/index.php?$args;
}

Hiển thị nội dung thư mục

Nếu thư mục không có file index, khi truy cập bạn có thể gặp thông báo lỗi “403 Forbidden“, không hiển thị những file bên trong đó. Để cho phép người dùng xem được thư mục này, bạn hãy chỉnh lại autoindexon.

location / {
    autoindex on;
}

hoặc chỉnh lại là off để không hiển thị nội dung thư mục:

location / {
    autoindex off;
}

Thông thường link 404 sẽ hiển thị thông báo lỗi của Nginx hoặc trang 404 của WordPress. Nếu bạn muốn hiển thị nội dung của trang chủ, có thể thêm đoạn code sau lên trước block location / { ... }

error_page 404 /index.php;

Nội dung index.php sẽ xuất hiện, tuy nhiên header status vẫn là 404. Nếu muốn header 200 thì bạn chuyển đoạn code thành: error_page 404 =200 /index.php;

Ngoài ra có một số tool tự động convert sang rule Nginx bạn có thể tham khảo thêm như:

  1. http://www.anilcetin.com
  2. http://labs.gidix.de/nginx/
  3. https://winginx.com/en/htaccess

89 Comments

  1. Thành 2 comment

    server {
    listen 80 default_server;

    # access_log off;
    access_log /home/dm.vn/logs/access.log;
    # error_log off;
    error_log /home/dm.vn/logs/error.log;

    root /home/dm.vn/public_html;
    index index.php index.html index.htm;
    server_name dm.vn;

    location / {
    try_files $uri $uri/ /index.php?$args;
    }

    location = /wp-login.php{
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny all;
    }
    }

    File cấu hình nginx của domain em là như thế, em thêm đoạn location = /wp-login.php{
    allow IP Của EM;
    deny all;
    } vào để giới hạn ip đăng nhập mà sao ip nào vào wp-login.php cũng bị 403 hết anh?

      1. Thành 2 comment

        server {
        listen 80;

        server_name http://www.dm.vn;
        rewrite ^(.*) http://dm.vn$1 permanent;
        }
        server {
        listen 80 default_server;

        # access_log off;
        access_log /home/dm.vn/logs/access.log;
        # error_log off;
        error_log /home/dm.vn/logs/error.log;

        root /home/dm.vn/public_html;
        index index.php index.html index.htm;
        server_name dm.vn;

        location = /wp-login.php {
        allow 116.102.220.67;
        deny all;
        }

        location / {
        try_files $uri $uri/ /index.php?$args;
        }
        }

        Vẫn không được anh, hjx.

          1. Thành 1 comment

            server {
            listen 80;

            server_name http://www.dm.vn;
            rewrite ^(.*) http://dm.vn$1 permanent;
            }
            server {
            listen 80 default_server;

            # access_log off;
            access_log /home/dm.vn/logs/access.log;
            # error_log off;
            error_log /home/dm.vn/logs/error.log;

            root /home/dm.vn/public_html;
            index index.php index.html index.htm;
            server_name dm.vn;

            location /wp-login.php {
            allow 116.102.220.67;
            deny all;
            }

            location / {
            try_files $uri $uri/ /index.php?$args;
            }
            }

            Nếu bỏ dấu = ở location thì ip nào vào cũng được a. Hjx

          2. Luân Trần Admin

            Format đúng của nó không có dấu = mà. Bạn xem cả bài viết này có chỗ nào có dấu = không?

  2. Phan Phieu 7 comment

    Hi bạn Luân!

    Cho mình hỏi chút là:
    site của mình dùng plugin đọc file pdf và show lên, thì url nó tự sinh ra ID sau dấu #, kiểu như:
    domain.com/bai-viet#ID
    Nếu click vào link này thì các file pdf không show được, mà ở chế độ waiting….
    Còn nếu bỏ #ID thì load bình thường.
    Ví dụ: http://thuvienthaythonglac.net/index.php/thu-muc-tu-lieu/item/523-chuyen-nhan-qua-lieu-phap-26-10-2001#.WEAEih-g_2E

    Mình muốn bỏ cái #ID thì làm thế nào?
    Hoặc bất cứ link nào dạng domain.com/bai-viet#ID sẽ được tự động chuyển về domain.com/bai-viet thì làm sao?

    Website mình dung NGINX

    Cám ơn bạn Luân nhé!

    1. Việt Phương Moderator

      Có rule rewrite URL nhưng mình thấy vấn đề của bạn là link tích hợp ở plugin chứ không phải link bài viết ở address mà.

  3. Phan Phiêu 7 comment

    Ừ bình thường nó sinh ID như vậy thì plugin nó cứ “loading…”, không hiển thị được file pdf, html của mình. Cho nên nếu share link tới người khác mà có cả ID của plugin thì rất bất tiện, vì nó không show file pdf của mình nhúng vào bài viết.

    Mình muốn rewrite lại thì như thế nào nhỉ? Bạn chỉ dùm mình được không?

    Cám ơn bạn!

  4. dũng 82 comment

    Không được Luân ơi 🙁 ko biết sai ở chỗ nào

    # nginx configuration
    error_page 404 /404.html;
    location / {
    if ($http_host !~ “^www.domian.com$”){
    rewrite ^(.*)$ http://www.domian.com/$1 redirect;
    }
    if (!-e $request_filename){
    rewrite index.php / break;
    }
    rewrite ^/([a-zA-Z0-9-]+).rss$ /rssnoidung.php?alias=$1;
    rewrite ^/([a-zA-Z]+)-([a-zA-Z0-9-%,]+)-([0-9]+)x([0-9]+).([a-zA-Z0-9]+)$ /xuli/timthumb.php?src=hinhanh/$1/$2.$5&w=$3&h=$4;
    rewrite ^/([a-zA-Z]+)-([a-zA-Z0-9-%,]+)-w([0-9]+).([a-zA-Z0-9]+)$ /xuli/timthumb.php?src=hinhanh/$1/$2.$4&w=$3;
    rewrite ^/([a-zA-Z]+)-([a-zA-Z0-9-%,]+)-h([0-9]+).([a-zA-Z0-9]+)$ /xuli/timthumb.php?src=hinhanh/$1/$2.$4&h=$3;
    rewrite ^/([0-9]+)__([a-zA-Z0-9]+).html /index.php?mucluc=kichhoattaikhoan&user_id=$1&user_random=$2;
    rewrite ^/([a-zA-Z0-9-]+).html$ /index.php?mucluc=loaitinsanpham&alias=$1;
    rewrite ^/([a-zA-Z0-9-]+)/page([0-9]+).html$ /index.php?mucluc=loaitinsanpham&alias=$1&page=$2;
    rewrite ^/([a-zA-Z0-9-]+)$ /index.php?mucluc=gianhang&useralias=$1;
    rewrite ^/([a-zA-Z0-9-]+)/page([0-9]+)$ /index.php?mucluc=gianhang&useralias=$1&page=$2;
    rewrite ^/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ /index.php?mucluc=gianhang&useralias=$1&alias=$2;
    rewrite ^/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/page([0-9]+)$ /index.php?mucluc=gianhang&useralias=$1&alias=$2&page=$3;
    }
    location /404 {
    rewrite ^/404.html /404.htm break;
    }
    location /index {
    rewrite ^/index.html /index.php;
    }
    location = /admin {
    rewrite ^(.*)$ /admin/index.php;
    }
    location = /en {
    rewrite ^(.*)$ /index.php?nn=en;
    }
    location /page {
    rewrite ^/page([0-9]+).html /index.php?page=$1;
    }
    location /xulidangnhap {
    rewrite ^/xulidangnhap.html /xulidangnhap.php;
    }
    location = /sitemap.xml {
    rewrite ^(.*)$ /home/sitemap/sitemapxml.php;
    }
    location = /sitemap.html {
    rewrite ^(.*)$ /index.php?mucluc=sitemap;
    }

    1. Luân Trần Admin

      Trường hợp này bạn liên hệ mail, nói cụ thể case nhé. Mình support cho.

  5. Thực 6 comment

    Anh luân ơi giúp e chút với

    File htaccess bên host của e là thế này

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !domain.com$ [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
    RewriteRule ^video/([0-9]+)/(.*).html$ view.php?url=$2&id=$1
    RewriteRule ^xvideos/([0-9]+)/(.*).html$ view_xvideos.php?url=$2&id=$1
    RewriteRule ^page/([0-9]+)$ index.php?page=$1
    RewriteRule ^page/([0-9]+)/$ index.php?page=$1
    RewriteRule ^tag/([a-zA-Z0-9_-]+).html$ search.php?q=$1&ok=a
    RewriteRule ^tag/([a-zA-Z0-9_-]+)/([0-9]+)$ search.php?q=$1&ok=a&page=$2
    RewriteRule ^category/([a-zA-Z0-9_-]+)$ category.php?url=$1
    RewriteRule ^category/([a-zA-Z0-9_-]+)/$ category.php?url=$1
    RewriteRule ^category/([a-zA-Z0-9_-]+)/page/([0-9]+)$ category.php?page=$2&url=$1
    RewriteRule ^category/([a-zA-Z0-9_-]+)/page/([0-9]+)/$ category.php?page=$2&url=$1
    RewriteRule ^sitemap_index.xml$ sitemap_index.php
    RewriteRule ^sitemap_index-([0-9]+).xml$ sitemap_index.php?page=$1
    RewriteRule ^sitemap.xml$ sitemap.php
    RewriteRule ^sitemap-([0-9]+).xml$ sitemap.php?page=$1
    RewriteRule ^sitemaptag.xml$ sitemap-tag.php
    RewriteRule ^sitemaptag-([0-9]+).xml$ sitemap-tag.php?page=$1
    RewriteRule ^top.html$ top.php
    ErrorDocument 404 /?act=404

    E đã thử cài lại trong /etc/nginx/conf.d nhưng không được
    A giúp e fix cho với đúng cấu hình như thế này chạy được được trên nginx ko ạ.
    Cảm ơn anh

    1. Việt Phương Moderator

      Kiểm tra file nginx conf của bạn đoạn nào để https sửa thành http

      1. Khải 4 comment

        Hola a!
        Cho e hỏi muốn redirect từ domain.com/cat/post.html sang domain.com/cat.post ( non .html) thì dùng lệnh nào trong nginx ạ?
        Trước e dùng link dạng .html nên giờ chuyển sang non .html, các bài chia sẻ và index trong google nó đều về 404, buồn ghê. Em dùng hocvps script ạ.

        1. Việt Phương Moderator

          Bạn cho link cụ thể đi để mình xem. cat sẽ tùy biến như thế nào hay cố định

          1. Khai 4 comment

            Trong permalink của wp là…/%category%/%postname% ạ.
            Thực ra là trước đây em có thêm đuôi /%category%/%postname%.html nên các post em chia sẻ trên mạng xh đều có đuôi .html. Giờ em dùng non-.html nên khi click các link cũ nó đều về 404.
            Em muốn hỏi cách để nginx redirect toàn bộ các link có .html về bài viết tương ứng nhưng không có .htm .
            Cảm ơn anh!

          2. Việt Phương Moderator

            Rule cụ thể theo cấu trúc link chứ không phải auto kiểu .html về non-html là được đâu bạn. Khi làm thế, các phần không phải post cũng bị đổi theo rất mệt

  6. Haphuyet 6 comment

    File default.conf cua em

    server {

    error_page 404 = /index.php;
    error_page 403 = /index.php;
    error_page 500 = /index.php;
    error_page 502 = /index.php;
    error_page 503 = /index.php;
    error_page 504 = /index.php;

    listen 80 default_server;

    access_log off;
    error_log off;

    root /home;
    index index.php index.html index.htm;

    location / {
    rewrite ^/(.*).html$ /$1.php;
    }

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }

    server {

    error_page 404 = /404.php;
    error_page 403 = /403.php;

    listen 80;

    access_log off;
    error_log off;

    root /var/www/html;
    index index.php index.html index.htm;
    server_name *.com *.net *.org *.biz *.info *.us *.asia *.name *.in *.me *.tv *.mobi *.club *.co *.cc *.cz *.ch *.nl *.pl *.mx *.uk *.pro *.vip *.tk *.ga *.cf *.ml *.gq *.xyz *.top *.bid *.pw *.win *.online *.site *.tech *.trade *.space *.press *.science *.webcam *.accountant *.loan *.racing *.faith *.party *.cricket *.website *.review *.vn *.diet *.pics *.click *.link *.uno *.date *.download;

    location = /favicon.ico {
    log_not_found off;
    access_log off;
    }

    location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }

    location / {
    # This is cool because no php is touched for static content.
    # include the “?$args” part so non-default permalinks doesn’t break when using query string
    try_files $uri $uri/ /index.php?$args;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
    }

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }

  7. Le Vu 10 comment

    A luân cho em hỏi là khi redirect domain cũ sang domain mới mà em có cài ssl cho domain cũ rồi thì chèn đoạn code kia vào trong file .conf như thế nào ạ?

    1. Việt Phương Moderator

      Bạn chèn rewrite ^(.*) http://newdomain.com$1 permanent; vào các block 80 và 443.
      Bình thường, chỉ cấu hình SSL thì bạn sẽ redirect http:// http://www về HTTPS. https://www. sẽ về HTTPS. Cuối cùng chỉ tồn tại duy nhất HTTPS
      Giờ thì bạn set toàn bộ các block đều redirect về domain mới

          1. Việt Phương Moderator

            Bỏ http đi. Nginx Conf thường có 3 block chứ nhỉ, gồm 2 block 443 và 1 block 80. Làm như bên dưới

            server {
            listen 443 ssl http2;
            server_name domaincu.com;
            rewrite ^(.*) https://domainmoi.com$1 permanent;
            }
            server {
            listen 80;
            server_name domaincu.com www.domaincu.com;
            rewrite ^(.*) https://domainmoi.com$1 permanent;
            }
            server {
            listen 443 ssl http2;
            server_name www.domaincu.com;
            rewrite ^(.*) https://domainmoi.com$1 permanent;
            }

            Nếu chỉ có 2 block thì làm như dưới

            server {
            listen 443 ssl http2;
            server_name domaincu.com www.domaincu.com;
            rewrite ^(.*) https://domainmoi.com$1 permanent;
            }

            server {
            listen 80;
            server_name domaincu.com www.domaincu.com;
            rewrite ^(.*) https://domainmoi.com$1 permanent;
            }

          2. vu 10 comment

            Quên mất: domain cũ có cần thêm https k ad nhỉ? Vì domain cũ e cũng cài ssl

          3. Việt Phương Moderator

            Không cần, listen 443 đã tương đương https rồi. Như khi em không gõ gì là port 80 HTTP

  8. vannguyen 24 comment

    Bạn ơi, khi mình vào etc/nginx/conf.d thì có 1 cái file là hocvps.com.conf (liệu mình có cài nhầm gì không nhỉ, nó là domain của hocvps chứ không phải là domain của mình). Tiếp tục dùng Notepad truy cập vào file đó thì ra danh sách code thì thấy có 2 cổng, một cổng 80 và một cổng của mình tạo (abc). Vậy đoạn code dưới đây chèn vào cổng nào?

    location ~* \.(?:ico|css|js|jpe?g|png|gif|svg|pdf|mov|mp4|mp3|woff)$ {
    expires 7d;
    add_header Pragma public;
    add_header Cache-Control “public”;
    gzip_vary on;
    }

    Hiện nay, web mình đã có trang 404 của wp tạo nhưng trong WMT vẫn báo lỗi 404. Mình muốn đặt lệnh redirect 301 toàn bộ các link 404 về trang chủ hoặc 1 trang nào đó, bạn cho xin đoạn code, mình xem trên các web khác viết ông chẳng bà chuộc không ra sao cả

    Trong file hocvps.com.conf của mình toàn code của hocvps.com như thế này có đúng không bạn

    server {
    server_name “~^www\.(.*)$” ;
    return 301 $scheme://$1$request_uri ;
    }

    server {
    listen 80;

    server_name http://www.hocvps.com;
    rewrite ^(.*) http://hocvps.com$1 permanent;
    }
    server {
    listen 80 default_server;

    # access_log off;
    access_log /home/hocvps.com/logs/access.log;
    # error_log off;
    error_log /home/hocvps.com/logs/error.log;

    root /home/hocvps.com/public_html;
    index index.php index.html index.htm;
    server_name hocvps.com;

    error_page 404 /index.php;
    location / {
    try_files $uri $uri/ /index.php?$args;
    }

    1. Việt Phương Moderator

      _File hocvps.com.conf là file cấu hình Nginx mặc định khi lúc cài HocVPS bạn không nhập tên miền cụ thể.
      Cấu hình phần này không có tác dụng gì với domain của bạn. Bạn sửa file Nginx conf tương ứng với domain của bạn nhé
      _Bạn sửa phần port 80 quy định root và server_name của site nhé. Trong cấu hình Nginx của HocVPS mặc định cũng có cấu hình phần location cho các file .js, mp3,… Bạn đọc sẽ thấy, gần cuối

  9. Van Nguyen 24 comment

    Vậy bây giờ mình có cần sao lưu toàn bộ dữ liệu của web để cài lại vps mới rồi up lại không bạn? Nếu cứ để nguyên như hiện nay thì nó có làm sao ko, mình vẫn thấy web đang chạy bình thường.

    Theo như bạn hướng dẫn là mình vào file nginx rồi tạo cái acb.com.conf thay cho hocvps.com.conf phải không. Bên trong file abc.com.conf mình đặt code như thế nào trong cổng 80 nhỉ?

    1. Việt Phương Moderator

      Bạn thêm website bằng HocVPS menu sẽ tự tạo đầy đủ cả thư mục web và Nginx conf cho bạn nhé. Khi đó bạn chỉ cần up source code vào thư mục web với chỉnh sửa Nginx conf (nếu cần) thôi

      1. Vannguyen 24 comment

        Cảm ơn bạn hồi âm. Web mình cài bằng hocvps của bạn mà, nhưng mình quên gõ domain để mặc định, giờ mình để nguyên như vậy chỉ sửa conf thôi được chứ. Mình chưa học cách sao lưu code và data từ nginx nên ngại up ra up vào. Nếu sửa file conf thì sửa ở cổng 80 thôi hả bạn

        1. Việt Phương Moderator

          Nếu thế bạn không cần sửa gì cả. Bạn chạy Hocvps menu để thêm website là domain của bạn thôi. Domain hocvps để nguyên đó chỉ để Quản lý HocVPs Script

    1. Việt Phương Moderator

      Bạn để trong thư mục demo đúng không? Phần bạn thêm vào, bạn thử location /demo/ {xem?

      1. Quoc 4 comment

        đã fixx dc rồi, bỏ ngoài thư mục gốc mới dc, bỏ trong thu mục con thì bị lỗi, thanks mod nhé

    2. Quoc 4 comment

      mình cũng đang bị trường hợp này. Giống y chang. Bạn fix dc thì chỉ mình với nha, chứ cả tuần rùi vẫn chưa ra cách.

  10. Tin 1 comment

    Giúp mình với..
    Đây là file htaccess:
    —————————

    RewriteEngine on
    RewriteRule ^country-study-([0-9]+).html$ country_study.php?id=$1
    RewriteRule ^country-study-d-([0-9]+).html$ country_study_d.php?id=$1
    RewriteRule ^country-study-detail-([0-9]+).html$ country_study_detail.php?id=$1
    RewriteRule ^visa-detail-([0-9]+).html$ visa-detail.php?id=$1
    RewriteRule ^register-events-([0-9]+).html$ register-events.php?id=$1
    RewriteRule ^latest-news-detail-([0-9]+).html$ latest_news_detail.php?id=$1
    RewriteRule ^(.*).html$ $1.php

    —————————————–

    Còn dưới đây là rule config trên Nginx. Mình không hiểu sao khi bấm Read More (href tới latest-news-detail-2.html) nó hiện 404 Nginx not found.
    **********
    # nginx configuration
    location /country {
    rewrite ^/country-study-([0-9]+).html$ /country_study.php?id=$1;
    rewrite ^/country-study-d-([0-9]+).html$ /country_study_d.php?id=$1;
    rewrite ^/country-study-detail-([0-9]+).html$ /country_study_detail.php?id=$1;
    }
    location /visa {
    rewrite ^/visa-detail-([0-9]+).html$ /visa-detail.php?id=$1;
    }
    location /register {
    rewrite ^/register-events-([0-9]+).html$ /register-events.php?id=$1;
    }
    location /latest {
    rewrite ^/latest-news-detail-([0-9]+).html$ /latest_news_detail.php?id=$1;
    }
    location ~ ^/ {
    rewrite ^/(.*).html$ /$1.php;
    }
    ****
    Mình cảm ơn

Comment của bạn

Your email address will not be published. Required fields are marked *