Ngoài ra, có khả năng áp dụng chức năng này để gửi tiêu đề HTTP mới, nhưng người ta nên gửi nó tới trình duyệt trước bất kỳ văn bản hoặc HTML nào
Hãy xem cách chuyển hướng trang web bằng hàm header()
Như bạn có thể nhận thấy, exit() được sử dụng trong ví dụ trên. Nó được áp dụng để ngăn trang hiển thị nội dung còn lại (ví dụ: các trang bị cấm)
Ngoài ra, bạn có thể sử dụng hàm header() với ob_start() và ob_end_flush(), như thế này
Ở đây, chúng tôi sẽ trình bày cách sử dụng chức năng trợ giúp để chuyển hướng trang web. Đây là một ví dụ
Tất cả các mã trạng thái HTTP được liệt kê tại Thông báo trạng thái HTTP
Lưu ý rằng chức năng này không hỗ trợ mã trạng thái 303
Hãy xem một ví dụ linh hoạt hơn
Trong một số trường hợp, khi đang chạy trong CLI (chuyển hướng sẽ không diễn ra) hoặc khi máy chủ web đang chạy PHP dưới dạng (F) CGI, thì Tiêu đề trạng thái đã đặt trước đó phải được đặt để chuyển hướng chính xác
Đây là một ví dụ
Ở đây, chúng tôi sẽ cung cấp cho bạn một phương pháp chuyển hướng thay thế triển khai JavaScript thông qua PHP. Trong JavaScript, có một cửa sổ. đối tượng vị trí được triển khai để nhận URL hiện tại và chuyển hướng trình duyệt tới một trang web mới. Đối tượng này bao gồm thông tin cần thiết về một trang (ví dụ: href, tên máy chủ, v.v.)
Đây là cách chuyển hướng một trang web bằng cửa sổ. vị trí
window.location function
Để kết luận, giả sử rằng trong hướng dẫn ngắn này, chúng tôi đã cung cấp cho bạn nhiều phương pháp để chuyển hướng một trang web bằng PHP. Ngoài ra, bạn có thể tìm thông tin về cách chuyển hướng trang web bằng HTML, JavaScript, Apache và Node. js
Chuyển hướng PHP là một công cụ cực kỳ hữu ích, nhưng chúng cũng có thể nguy hiểm nếu không được triển khai đúng cách
Nếu bạn đã xem qua phần giới thiệu của chúng tôi về PHP 7. 4 và hướng dẫn của chúng tôi về cách xây dựng trang web trong 5 phút, bạn sẽ biết rằng hàm header() có thể được sử dụng để dễ dàng chuyển hướng người dùng đến một trang khác. Tuy nhiên, trên thực tế, việc sử dụng chức năng này không đơn giản như người ta tưởng. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo một chuyển hướng PHP mà không gây ra các vấn đề lớn về sau
Phương thức cơ bản để chuyển hướng PHP
Hầu hết các hướng dẫn sẽ cho bạn biết rằng để tạo chuyển hướng PHP, bạn chỉ cần sử dụng hàm header() ở đầu trang của mình. Để làm được điều đó, bạn sử dụng chức năng gửi một URL mới, như thế này
header('Location: '.$newURL.php);This header function should be put before you pass any HTML or text to your users’ browsers, so it should be right at the top of the page. That means it should come before the declaration, before any Java, and before any PHP code. It will then send users to the new URL.
Mặc dù có vẻ đơn giản, nhưng khi nói đến hàm header(), sự đơn giản của mã có thể khiến các nhà phát triển có cảm giác an toàn sai lầm. Vì vậy, hãy xem cách bạn có thể sử dụng chức năng này một cách chính xác
Chết () và Thoát ()
Đầu tiên, bạn nên sử dụng công cụ sửa đổi die() hoặc exit() mỗi khi bạn sử dụng chuyển hướng. Tóm lại, vấn đề là các trình thu thập thông tin và bot có thể bỏ qua các tiêu đề và do đó, trang mà bạn cho rằng mình đang chuyển hướng khỏi đó hoàn toàn có thể truy cập được đối với chúng. Nói cách khác, nếu bạn đang sử dụng chuyển hướng tiêu đề để bảo vệ một trang cụ thể, thì nó không bảo vệ bạn chút nào
Đó là lý do tại sao bạn phải dừng xử lý phần còn lại của trang, trong trường hợp chuyển hướng bị bỏ qua. Cách để làm điều đó là thêm die() hoặc exit() sau chuyển hướng của bạn
header("Location: .$newURL.php"); die();URL tương đối và tuyệt đối
Tiếp theo, hãy nói về URL tương đối và tuyệt đối trong chuyển hướng. cho phép bạn sử dụng cả hai, nhưng bạn nên cực kỳ cẩn thận khi sử dụng chuyển hướng tương đối. Đó là bởi vì một số nhà xây dựng trang web đối chiếu và đổi tên các trang PHP. Điều này có nghĩa là nếu bạn đang làm việc trên PHP của mình thông qua một trình tạo trang web, bạn có thể sẽ phá vỡ tất cả các chuyển hướng của mình
Thật không may, hiện tại không có cách thực sự nào để giải quyết vấn đề này, nếu không có cái nhìn tổng quan cẩn thận về nơi các chuyển hướng của bạn đang trỏ đến
Mã trạng thái
Vấn đề thứ ba với các chuyển hướng PHP tiêu chuẩn là toán tử “vị trí” của PHP vẫn trả về mã HTTP 302. Bạn không nên cho phép nó làm điều đó, bởi vì nhiều trình duyệt web triển khai mã này theo cách hoàn toàn trái ngược với cách mà nó được cho là hoạt động. về cơ bản họ sử dụng lệnh GET thay vì thực hiện chuyển hướng "thực"
Do đó, cách thực hành tốt nhất khi xây dựng các chuyển hướng PHP là chỉ định mã được trả về. Thật không may, mã chính xác để sử dụng là một điểm gây tranh cãi. HTTP 301 cho biết chuyển hướng vĩnh viễn, điều này có thể khiến bạn gặp sự cố khi khôi phục trang gốc của mình. Rất tiếc, HTTP 303 được nhiều trình duyệt hiểu là “khác” và có thể gây ra sự cố khi lập chỉ mục trang của bạn thông qua các công cụ tìm kiếm
Trong thực tế, và cho đến khi tình trạng này được giải quyết, hãy sử dụng HTTP 303
Kiểm tra tài liệu
Ngoài việc thực hiện các biện pháp phòng ngừa cơ bản ở trên, bạn nên dành chút thời gian để đọc tài liệu về cách sử dụng chuyển hướng PHP trước khi xuất bản chúng. Bạn nên kiểm tra hướng dẫn sử dụng PHP để đảm bảo rằng bạn hiểu những gì bạn đang làm, cũng như kiểm tra để đảm bảo rằng bạn đang thực hành tốt nhất
Và trong khi bạn đang bắt kịp bài đọc của mình, hãy đảm bảo rằng bạn cũng bảo vệ trang web khỏi các lỗ hổng phổ biến. nếu bạn đã ở trong tình thế phải sử dụng chuyển hướng PHP, có khả năng bảo mật trang web của bạn sẽ cần được kiểm tra
Các phương pháp khác
Với tất cả những vấn đề này, có lẽ bạn đang tự hỏi tại sao bạn lại sử dụng chuyển hướng PHP. Đó là một câu hỏi chính đáng. Mặc dù các chuyển hướng PHP thường được thực hiện nhanh hơn các loại chuyển hướng khác và do đó có thể là một công cụ quan trọng trong việc cải thiện tốc độ trang web, vẫn có các tùy chọn khác
There are two main approaches to doing this. You can either use the HTML element to redirect from within the HTML portion of your page, or use JavaScript. The first approach – using would look like this:
<meta http-equiv="refresh" content="0;url=newpage.php">Cách tiếp cận thứ hai – sử dụng JavaScript – thanh lịch hơn một chút và chắc chắn trông chuyên nghiệp hơn
window.location.replace("//newpage.php/");Cả hai cách tiếp cận này sẽ thực thi chậm hơn một chút so với chuyển hướng tiêu đề () ngay lập tức, nhưng được cho là linh hoạt hơn
Đảm bảo trang web của bạn có thể xử lý mọi thứ – từ lưu lượng truy cập cao đến thời gian tải nhanh, v.v. Mua dịch vụ lưu trữ web
Một Lời Cuối Cùng
Mặc dù làm theo các bước trên có nghĩa là chuyển hướng PHP của bạn thực thi an toàn, nhưng nếu bạn đang ở vị trí sử dụng nhiều chuyển hướng PHP, có lẽ đã đến lúc bạn nên suy nghĩ lại về cấu trúc trang web của mình
Có một vài lý do chính đáng để làm điều đó. Đầu tiên là không phải tất cả các máy chủ web đều được tạo ra như nhau và nếu bạn đang gửi tất cả khách truy cập của mình trên một tuyến đường vòng quanh trang web của mình, điều này sẽ ảnh hưởng đến hiệu suất của nó. Điều này có thể được cải thiện ở một mức độ nào đó bằng cách sử dụng một nhà cung cấp dịch vụ lưu trữ web giá cả phải chăng, nhưng chỉ ở một mức độ nhất định
Lý do thứ hai là trang bạn đang chuyển hướng có thể đang thu thập dữ liệu về khách truy cập mà bạn không biết, đặc biệt nếu bạn đang sử dụng phần mềm phân tích trang web để theo dõi hiệu suất trang web của mình. Trong thế giới hậu GDPR của chúng ta, điều đó có thể gây ra những hậu quả đáng kể
Vì vậy, tóm lại. hãy cẩn thận với các chuyển hướng PHP, sử dụng chúng đúng cách và chỉ sử dụng chúng ở đâu và khi nào bạn thực sự phải làm
Tác giả
Dominyka tôi
Dominykas bắt đầu với tư cách là Chuyên gia tiếp thị và hiện đang làm việc với tư cách là Biên tập viên nội dung và Trưởng nhóm. Khi không đảm bảo chất lượng bài viết, anh ấy thích vừa đọc vừa viết tiểu thuyết
Thêm từ Dominykas I
Đồng tác giả
Ignas T
Ignas là một phần của đội ngũ Kỹ thuật của Hostinger. Anh ấy đảm nhận việc quản trị và giám sát máy chủ, đặc biệt tập trung vào ảo hóa phần mềm. Trong thời gian rảnh rỗi, anh ấy luôn sẵn sàng cho một chuyến phiêu lưu trượt tuyết hoặc chèo thuyền kayak hoặc một đêm trò chơi trên bàn cờ