Tấn Phát Digital

Tạo Redirect 301 Hàng Loạt

Dán bảng URL cũ và URL mới, nhận quy tắc cho Nginx, Apache .htaccess, Next.js, Vercel, Netlify và file CSV cho Cloudflare Bulk Redirects. Công cụ dò trùng lặp, URL tự trỏ về chính nó, vòng lặp và chuỗi chuyển hướng nhiều bước.

Bảng URL cũ, URL mới

Dán thẳng hai cột từ Excel hoặc Google Sheets. Cột thứ ba (301, 302, 307, 308) nếu có sẽ ghi đè mã chung cho dòng đó. Dòng bắt đầu bằng # được bỏ qua.

Chuẩn hóa và tùy chọn

Mã chuyển hướng

Chưa có dữ liệu. Dán bảng URL hoặc bấm Nạp ví dụ để xem cách công cụ báo trùng, vòng lặp và chuỗi.

Trước khi đưa lên máy chủ

Sao lưu file cấu hình cũ. Với Nginx, chạy nginx -t để kiểm tra cú pháp rồi mới tải lại. Với .htaccess, thử vài URL cũ ngay sau khi lưu, vì một lỗi cú pháp sẽ làm cả site báo lỗi 500.

Công cụ chỉ đọc bảng bạn dán, không truy cập website. Sau khi áp dụng, hãy kiểm tra từng URL cũ thật sự trả về mã 301 và đúng đích bằng công cụ kiểm tra chuyển hướng.

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Tạo quy tắc redirect 301 hàng loạt từ bảng URL cũ, URL mới

Cần tạo redirect 301 cho hàng trăm trang khi đổi cấu trúc đường dẫn, chuyển website sang nền tảng mới hay gộp nhiều trang, bạn thường có sẵn một bảng tính hai cột: URL cũ và URL mới. Công cụ này đọc bảng đó (dán từ Excel, Google Sheets, CSV hoặc mở file), chuẩn hóa đường dẫn, dò những lỗi hay làm hỏng đợt chuyển hướng như URL cũ bị lặp, URL trỏ về chính nó, vòng lặp và chuỗi nhiều bước, rồi sinh quy tắc cho Nginx, Apache .htaccess, Next.js, Vercel, Netlify và file CSV nhập vào Cloudflare Bulk Redirects.

Tính năng nổi bật

  • Nhận bảng hai cột dán từ Excel, Google Sheets (tab), CSV phẩy hoặc chấm phẩy, dạng /cu -> /moi, hoặc mở file .xlsx, .xls, .csv; tự bỏ dòng tiêu đề và dòng chú thích bắt đầu bằng #
  • Cột thứ ba tùy chọn ghi mã riêng cho từng dòng (301, 302, 307, 308), không có thì dùng mã chung
  • Chuẩn hóa: bỏ tên miền của site ở URL cũ, coi www và không www là một, gộp /a và /a/, mã hóa và giải mã ký tự tiếng Việt đúng dạng mà từng máy chủ so khớp, ghi đích cùng domain dạng đường dẫn
  • Dò URL cũ trùng nhau: trùng cùng đích thì bỏ dòng lặp, trùng khác đích thì báo xung đột và giữ dòng đầu
  • Dò URL mới trỏ về chính URL cũ, kể cả trường hợp chỉ khác dấu / cuối, và loại khỏi đầu ra
  • Dò vòng lặp A → B → A (kể cả vòng dài) và các dòng dẫn vào vòng lặp, loại chúng và ghi rõ đường đi của vòng
  • Dò chuỗi nhiều bước A → B → C, tự rút gọn A thẳng tới đích cuối C (tắt được) để mỗi URL cũ chỉ mất một lần chuyển
  • Sinh 8 dạng: Nginx map (tra bằng bảng băm, hợp danh sách dài), Nginx location =, Apache RewriteRule, Apache Redirect 301, Next.js redirects(), vercel.json, Netlify _redirects, Cloudflare Bulk Redirects CSV
  • URL cũ có query (?p=123) được so khớp đúng: map $request_uri cho Nginx, RewriteCond %{QUERY_STRING} cho Apache, has cho Next.js và Vercel; nền tảng không làm được thì ghi chú thích
  • Thoát ký tự đặc biệt theo từng cú pháp: ký tự regex và dấu cách trong RewriteRule, $ và % trong đích của RewriteRule, ký tự path-to-regexp trong Next.js, ngoặc kép trong Nginx, dấu phẩy trong CSV
  • Tải báo cáo CSV từng dòng (dùng hay loại, lý do, đích sau rút gọn), sao chép hoặc tải đúng tên file của từng nền tảng

Vì sao một đợt redirect hàng loạt hay hỏng

Bảng redirect thường được nhiều người cùng điền trong nhiều tuần: người làm SEO xuất danh sách URL cũ có traffic, người làm nội dung điền URL mới, rồi cấu trúc lại thay đổi giữa chừng. Kết quả là những lỗi khó thấy bằng mắt khi bảng có vài nghìn dòng: một URL cũ được điền hai đích khác nhau, một trang được chuyển sang URL mới rồi URL mới ấy lại nằm trong cột URL cũ ở dòng khác, hai dòng trỏ qua lại tạo vòng lặp làm trình duyệt báo lỗi quá nhiều lần chuyển hướng. Chép tay sang cú pháp máy chủ lại thêm lỗi: quên thoát dấu chấm trong RewriteRule, dùng Redirect của Apache mà không biết nó khớp theo tiền tố, dán đường dẫn có dấu tiếng Việt sai dạng mã hóa. Công cụ kiểm tra cả bảng trước khi sinh mã và chỉ đưa vào đầu ra những dòng an toàn.

Lợi ích khi sử dụng

  • Phát hiện vòng lặp và xung đột trước khi chúng làm trang báo lỗi cho người dùng thật
  • Mỗi URL cũ chỉ mất một lần chuyển hướng nhờ rút gọn chuỗi, giữ tốc độ tải và tín hiệu cho công cụ tìm kiếm
  • Cùng một bảng xuất được cho nhiều nền tảng khi bạn chuyển hạ tầng, không phải viết lại
  • Đường dẫn tiếng Việt có dấu được ghi đúng dạng mà từng máy chủ so khớp
  • Báo cáo CSV giúp người làm SEO và người quản trị máy chủ cùng rà một danh sách
  • Chạy trên trình duyệt, bảng URL nội bộ không gửi đi đâu

Cách tạo redirect 301 hàng loạt

  1. 1Dán bảng vào ô Bảng URL cũ, URL mới (mỗi dòng: URL cũ, URL mới), hoặc bấm Mở file Excel, CSV; bấm Nạp ví dụ để xem một bảng có đủ các lỗi thường gặp.
  2. 2Ở khối Chuẩn hóa và tùy chọn, nhập Domain của site và chọn Mã chuyển hướng 301, 302, 307 hoặc 308.
  3. 3Bật hoặc tắt các ô: Giữ query của request, Khớp cả có và không có dấu / cuối, Coi www và không www là một, Đích cùng domain ghi dạng /duong-dan, Rút gọn chuỗi về đích cuối.
  4. 4Đọc khối Kiểm tra bảng: số quy tắc dùng được và từng dòng bị báo vòng lặp, tự trỏ, trùng, xung đột, chuỗi; sửa trong bảng gốc nếu cần, kết quả cập nhật ngay.
  5. 5Ở khối Quy tắc chuyển hướng, chọn Nền tảng (Nginx map, Nginx location, Apache RewriteRule, Apache Redirect 301, Next.js, vercel.json, Netlify _redirects, Cloudflare CSV) và đọc ghi chú bên dưới.
  6. 6Bấm Sao chép hoặc Tải file, bấm Tải báo cáo CSV nếu cần lưu lại danh sách dòng bị loại.
  7. 7Đưa quy tắc lên máy chủ, kiểm tra cú pháp (nginx -t), rồi thử lại vài URL cũ bằng công cụ kiểm tra chuyển hướng.

301, 302, 307, 308 khác nhau thế nào

301 (Moved Permanently) và 308 (Permanent Redirect) báo rằng trang đã chuyển hẳn; 302 (Found) và 307 (Temporary Redirect) báo chuyển tạm thời. Điểm khác giữa hai cặp là phương thức: với 301 và 302, trình duyệt được phép đổi yêu cầu POST thành GET khi đi theo chuyển hướng, còn 307 và 308 bắt buộc giữ nguyên phương thức và thân yêu cầu. Với trang nội dung thông thường chỉ được mở bằng GET, 301 và 308 cho kết quả như nhau. Google coi 301 và 308 là tín hiệu chuyển hẳn để thay URL cũ bằng URL mới trong kết quả tìm kiếm, còn 302 và 307 được hiểu là tạm thời. Next.js dùng 308 khi bạn ghi permanent: true và 307 khi ghi permanent: false; công cụ ghi statusCode: 301 hoặc 302 khi bạn chọn đúng hai mã đó.

Vòng lặp và chuỗi chuyển hướng

Vòng lặp xảy ra khi đi theo các quy tắc lại quay về điểm xuất phát, ví dụ /khuyen-mai chuyển sang /tin-tuc/khuyen-mai-2023 trong khi một dòng khác chuyển ngược lại. Trình duyệt sẽ dừng sau một số lần và báo lỗi trang chuyển hướng quá nhiều lần, công cụ tìm kiếm cũng bỏ cuộc. Công cụ đi theo đích của từng dòng; nếu đích là URL cũ của một dòng khác thì đi tiếp, gặp lại một URL đã đi qua là vòng lặp. Các dòng trong vòng bị loại khỏi đầu ra kèm đường đi của vòng, dòng dẫn vào vòng cũng bị loại. Có một dạng vòng lặp khó thấy: /a chuyển sang /a?ref=cu. Quy tắc cho URL cũ không có query khớp với mọi query trên cả Nginx, Apache, Next.js lẫn Netlify, nên request /a?ref=cu lại bị chuyển tiếp mãi; công cụ coi đây là tự trỏ và loại, và khi đi theo chuỗi cũng tính đích có query là rơi vào quy tắc của đường dẫn không query. Chuỗi là trường hợp đi được nhiều bước rồi dừng ở một trang thật. Chuỗi không gây lỗi nhưng mỗi bước là một lượt gửi yêu cầu lên máy chủ; Googlebot theo tối đa 10 bước, và mỗi bước làm chậm người dùng. Mặc định công cụ rút gọn để mọi URL cũ trong chuỗi trỏ thẳng tới đích cuối.

Chọn kiểu Nginx: map hay location

Với vài chục dòng, khối location = /duong-dan { return 301 /moi; } dễ đọc và dễ sửa. Với hàng trăm, hàng nghìn dòng, nên dùng map: Nginx dựng một bảng băm từ danh sách và tra bằng một phép tìm, nên tốc độ gần như không đổi dù danh sách dài. Đầu ra kiểu map gồm hai phần: khối map đặt trong http { }, và vài dòng if ($redirect_301) { return 301 $redirect_301; } đặt trong server { }. Dùng if chỉ để return như thế này là cách an toàn được tài liệu Nginx chấp nhận. Map dùng biến $uri, là đường dẫn đã giải mã %XX và không có query, nên khóa trong map ghi chữ tiếng Việt có dấu nguyên dạng. URL cũ có query được đặt trong một map riêng dựa trên $request_uri, so khớp nguyên văn đường dẫn kèm query như trình duyệt gửi. Khi bật giữ query, giá trị đích có thêm $is_args$args để chuyển tiếp query của request. Nếu nginx -t báo lỗi không dựng được map_hash, hãy tăng map_hash_bucket_size trong khối http.

Apache: RewriteRule hay Redirect 301

Redirect 301 /cu /moi của mod_alias ngắn gọn nhưng khớp theo tiền tố: nó chuyển cả /cu/bat-ky sang /moi/bat-ky, và không lọc được theo query. Điều này đúng ý khi chuyển cả một thư mục, nhưng dễ gây chuyển nhầm khi bạn chỉ muốn chuyển một trang; công cụ xếp đường dẫn dài lên trước để quy tắc cụ thể được khớp trước. RewriteRule của mod_rewrite khớp chính xác bằng biểu thức chính quy, nên là kiểu mặc định khuyên dùng. Trong .htaccess đặt ở thư mục gốc, mẫu so khớp là đường dẫn không có dấu / đầu và đã giải mã, nên công cụ ghi ^vi/món-ăn/?$ chứ không ghi dạng %XX; dấu chấm, ngoặc và các ký tự regex khác được thoát bằng dấu gạch chéo ngược. Ở phần đích, $ và % là ký hiệu tham chiếu ngược nên được thoát thành \$ và \%, kèm cờ NE để Apache không mã hóa lại các chuỗi %XX. URL cũ có query dùng thêm RewriteCond %{QUERY_STRING} và cờ QSD (Apache 2.4) để bỏ query cũ khỏi đích.

Next.js, Vercel, Netlify và Cloudflare

Next.js nhận danh sách trong hàm redirects() của next.config.js; source dùng cú pháp path-to-regexp, nên các ký tự như ( ) : + * ? phải thoát, công cụ đã làm việc này. Next.js tự chuyển tiếp query của request sang đích. URL cũ có query được chuyển thành điều kiện has dạng query. vercel.json dùng đúng cấu trúc đó trong mảng redirects. File _redirects của Netlify đọc từ trên xuống, dòng khớp đầu tiên được dùng, khớp đường dẫn bất kể có dấu / cuối hay không và tự chuyển tiếp query với mã 301, 302; Netlify chỉ khớp query theo cú pháp tham số, nên dòng có query được ghi thành chú thích để bạn tự viết. Cloudflare Bulk Redirects nhận file CSV không có dòng tiêu đề, mỗi dòng gồm URL nguồn (tên miền và đường dẫn, không có query), URL đích đầy đủ, mã và cờ giữ query TRUE hoặc FALSE. Sau khi nhập danh sách, bạn cần tạo một Bulk Redirect Rule dùng danh sách đó thì quy tắc mới có hiệu lực.

Chuẩn hóa URL: dấu / cuối, www, query và chữ có dấu

Bảng thực tế trộn nhiều dạng: có dòng ghi https://www.example.com/a, có dòng chỉ ghi /a, có dòng ghi example.com/a/. Công cụ đưa mọi dòng về cùng một dạng trước khi so sánh: bỏ tên miền nếu trùng domain của site, coi www và không www là một nếu bạn bật, coi /a và /a/ là một nếu bạn bật. Khi gộp dấu / cuối, quy tắc Nginx và Apache sinh ra khớp cả hai dạng. Đường dẫn có chữ tiếng Việt được so sánh ở dạng đã giải mã, nên /món-ăn và /m%C3%B3n-%C4%83n là một. Khi sinh mã, mỗi nền tảng nhận đúng dạng nó cần: Nginx và Apache dùng dạng đã giải mã, Next.js, Netlify và Cloudflare dùng dạng mã hóa %XX như trình duyệt gửi. Phần #... trong URL cũ bị bỏ qua và có cảnh báo, vì trình duyệt không gửi phần này lên máy chủ.

Công cụ đã được kiểm tra thế nào và còn giới hạn gì

Phần dò lỗi được kiểm thử với bảng có chuỗi ba bước, vòng lặp hai dòng, dòng dẫn vào vòng lặp, dòng tự trỏ, trùng cùng đích và trùng khác đích. File .htaccess sinh ra được chạy thật trên Apache 2.4.59 và gọi thử bằng curl: đường dẫn tiếng Việt, đường dẫn có dấu cách và ngoặc, URL cũ có query, đích chứa %20, giữ và bỏ query đều trả về 301 đúng đích; Redirect 301 khớp cả trang con như mô tả. Đầu ra Nginx, Next.js, Vercel, Netlify, Cloudflare được kiểm tra theo tài liệu của từng nền tảng nhưng chưa chạy trên máy chủ thật, hãy thử trên môi trường thử nghiệm trước. Công cụ không truy cập website để kiểm tra URL mới có tồn tại không, không sinh quy tắc dạng mẫu (wildcard, :slug) và không xử lý basePath hay đa ngôn ngữ của Next.js.

Câu hỏi thường gặp (FAQ)

Redirect 301 là gì?

Redirect 301 là phản hồi HTTP báo rằng trang đã chuyển hẳn sang địa chỉ mới, kèm địa chỉ đó trong tiêu đề Location. Trình duyệt tự mở địa chỉ mới, công cụ tìm kiếm dần thay URL cũ bằng URL mới trong kết quả. Đây là cách chuẩn để giữ người dùng và thứ hạng khi đổi đường dẫn.

301 và 302 khác nhau thế nào, nên dùng mã nào?

301 là chuyển hẳn, 302 là chuyển tạm thời. Khi đổi cấu trúc URL hay chuyển domain, dùng 301 (hoặc 308) để công cụ tìm kiếm biết thay URL cũ. Chỉ dùng 302, 307 khi trang cũ sẽ quay lại, ví dụ trang đang bảo trì.

Làm sao tạo redirect 301 bằng .htaccess cho nhiều URL?

Dán bảng URL cũ, URL mới, chọn nền tảng Apache RewriteRule, rồi tải file .htaccess hoặc sao chép các dòng vào .htaccess ở thư mục gốc website. Máy chủ cần bật mod_rewrite và cho phép .htaccess ghi đè cấu hình (AllowOverride). Thử vài URL ngay sau khi lưu, vì lỗi cú pháp trong .htaccess làm cả site báo lỗi 500.

Vì sao không nên dùng Redirect 301 của Apache cho từng trang?

Redirect của mod_alias khớp theo tiền tố, nên Redirect 301 /san-pham /moi cũng chuyển /san-pham/ao-thun sang /moi/ao-thun. Nếu bạn chỉ muốn chuyển đúng một trang, hãy dùng RewriteRule. Redirect 301 vẫn hợp khi chuyển cả một thư mục sang thư mục mới.

Vòng lặp chuyển hướng là gì và công cụ phát hiện thế nào?

Vòng lặp là khi các quy tắc chuyển qua lại và quay về điểm đầu, ví dụ A sang B và B sang A; trình duyệt sẽ báo trang chuyển hướng quá nhiều lần. Công cụ đi theo đích của từng dòng cho tới khi gặp trang không còn quy tắc nào, nếu gặp lại một URL đã đi qua thì báo vòng lặp kèm đường đi. Các dòng trong vòng bị loại khỏi đầu ra.

Chuỗi chuyển hướng có hại gì không?

Chuỗi A sang B rồi B sang C không gây lỗi nhưng mỗi bước thêm một lượt gửi yêu cầu, làm trang mở chậm hơn, và Googlebot chỉ theo tối đa 10 bước. Công cụ mặc định rút gọn để A trỏ thẳng tới C. Nên rút gọn cả những chuyển hướng cũ đã có trên máy chủ.

Nhập URL đầy đủ có tên miền hay chỉ đường dẫn?

Cả hai đều được, có thể trộn trong cùng một bảng. Hãy nhập Domain của site để công cụ biết URL nào thuộc site của bạn; nếu để trống, công cụ lấy tên miền từ URL cũ đầu tiên có tên miền. Riêng Cloudflare Bulk Redirects bắt buộc có tên miền trong URL nguồn.

URL cũ có tham số như ?id=123 thì xử lý thế nào?

Công cụ so khớp đúng đường dẫn kèm query đó: Nginx dùng map trên $request_uri, Apache dùng RewriteCond %{QUERY_STRING}, Next.js và Vercel dùng điều kiện has. Nginx location, Apache Redirect và Netlify không so khớp query kiểu này nên dòng đó được ghi thành chú thích; Cloudflare Bulk Redirects không cho URL nguồn có query nên dòng đó bị loại. Trong file .htaccess, Next.js và Nginx map, các quy tắc có query được xếp lên trước, vì quy tắc cùng đường dẫn không có query sẽ khớp mọi query và chặn mất nó nếu đứng trước.

Giữ query của request nghĩa là gì?

Khi bật, /cu?utm_source=zalo chuyển sang /moi?utm_source=zalo, giữ được tham số theo dõi chiến dịch. Khi tắt, đích luôn là /moi không kèm query. Next.js, Vercel và Netlify tự chuyển tiếp query nên tùy chọn tắt không áp dụng được ở đó.

Đường dẫn có tiếng Việt có dấu có dùng được không?

Được. Công cụ coi /món-ăn và dạng mã hóa /m%C3%B3n-%C4%83n là một, và ghi đúng dạng cho từng nền tảng: Nginx, Apache dùng dạng có dấu đã giải mã, Next.js, Netlify, Cloudflare dùng dạng %XX. File cấu hình cần lưu ở mã UTF-8.

Có tạo redirect cho WordPress được không?

Được nếu WordPress chạy trên Apache hoặc Nginx: chọn Apache RewriteRule và đặt các dòng lên trên khối # BEGIN WordPress trong .htaccess, hoặc chọn Nginx map. Nếu bạn dùng plugin chuyển hướng, nhiều plugin cho nhập file CSV hai cột; khi đó dùng báo cáo CSV hoặc bảng gốc đã sửa lỗi.

Cloudflare Bulk Redirects nhập file thế nào?

Chọn nền tảng Cloudflare CSV và tải file bulk-redirects.csv. Trong bảng điều khiển Cloudflare, tạo một danh sách Bulk Redirect List và tải file lên, rồi tạo Bulk Redirect Rule dùng danh sách đó. File không có dòng tiêu đề, đúng yêu cầu của Cloudflare.

Redirect 301 trong Next.js viết ở đâu?

Trong next.config.js, hàm async redirects() trả về mảng các object source, destination và statusCode hoặc permanent. Công cụ sinh sẵn cả khối module.exports; nếu file của bạn đã có cấu hình khác, chỉ chép hàm redirects vào. Sau khi sửa cần build lại ứng dụng.

Công cụ có kiểm tra URL mới có tồn tại không?

Không. Công cụ chỉ đọc bảng bạn dán, không gửi yêu cầu tới website nào. Sau khi đưa quy tắc lên, hãy kiểm tra URL cũ trả về mã 301 đúng đích và URL mới trả về 200 bằng công cụ kiểm tra chuyển hướng.

Hai dòng có cùng URL cũ thì quy tắc nào được dùng?

Công cụ giữ dòng xuất hiện trước. Nếu hai dòng cùng đích, dòng sau bị bỏ như một bản lặp; nếu khác đích, dòng sau bị báo xung đột màu đỏ để bạn chọn lại. Trên máy chủ thật, cách xử lý trùng mỗi nền tảng một khác, nên tốt nhất là sửa bảng gốc.

Có giới hạn số dòng không?

Công cụ không đặt giới hạn cứng; vài nghìn dòng xử lý ngay trên trình duyệt. Khối Kiểm tra bảng chỉ hiện 300 dòng có vấn đề đầu tiên, báo cáo CSV có đủ. Với danh sách rất dài trên Nginx, nên chọn kiểu map thay vì location.

Tạo xong thì kiểm tra redirect 301 đã chạy đúng bằng cách nào?

Sau khi đưa quy tắc lên máy chủ, mở vài URL cũ trong cửa sổ ẩn danh, hoặc dùng công cụ Redirect Checker trên trang để xem mã trả về (phải là 301 hay 308) và đích cuối có đúng không. Với danh sách dài, chạy lệnh curl -sI cho từng URL cũ và lọc dòng Location. Trang tạo quy tắc này không gửi request tới website của bạn nên không tự kiểm tra được quy tắc đã chạy.

Redirect 301 bằng PHP hay plugin WordPress có cần công cụ này không?

PHP chuyển hướng bằng header("Location: /trang-moi", true, 301) rồi exit, chạy sau khi máy chủ đã nạp PHP nên chậm hơn quy tắc ở Nginx hay .htaccess; công cụ không sinh mã PHP. Plugin chuyển hướng của WordPress lưu quy tắc trong cơ sở dữ liệu và thường cho nhập file CSV hai cột, khi đó bạn có thể dùng báo cáo CSV của công cụ để lọc trước các dòng trùng, tự trỏ và vòng lặp. Với website lớn, đặt quy tắc ở tầng máy chủ web vẫn là cách nhẹ nhất.

Có tạo được quy tắc dạng mẫu như /blog/* sang /tin-tuc/* không?

Không, công cụ chỉ làm chuyển hướng một một giữa từng URL cũ và URL mới. Quy tắc dạng mẫu cần viết tay theo cú pháp của từng nền tảng. Riêng Apache Redirect 301 khớp theo tiền tố nên một dòng /blog sang /tin-tuc sẽ chuyển cả các trang con.

Từ khóa liên quan

  • redirect 301
  • redirect 301 htaccess
  • redirect 301 htaccess generator
  • redirect 301 hàng loạt
  • tạo redirect 301
  • 301 và 302 redirect
  • redirect 301 302
  • redirect 301 cloudflare
  • 301 redirect in wordpress
  • redirect 301 php
  • bulk redirect generator
  • nginx redirect map
  • nginx 301 redirect nhiều url
  • htaccess redirect nhiều url
  • next.js redirects
  • vercel redirects
  • netlify _redirects
  • cloudflare bulk redirects csv
  • redirect loop
  • redirect chain
  • chuyển hướng 301 khi đổi url
  • redirect 301 là gì

Công cụ SEO Tools liên quan

Dịch vụ của Tấn Phát Digital

Công cụ giúp bạn tìm ra việc cần làm. Phần triển khai liên tục thì để chúng tôi:

Dịch vụ chăm sóc website định kỳ

Viết content SEO, tối ưu thứ hạng và A/B test chuyển đổi hàng tháng, cam kết KPI theo hợp đồng.

Từ 2.000.000đ/thángXem chi tiết →

Dịch vụ SEO Google Maps

Tối ưu Google Business Profile để lên top 3 Local Pack, tăng lượt gọi từ khách quanh khu vực.

Từ 3.000.000đ/thángXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

TAN PHATDIGITAL