Làm cách nào để chuyển hướng một liên kết đến một trang khác trong PHP?

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

Làm cách nào để chuyển hướng một liên kết đến một trang khác trong PHP?

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

Làm cách nào để chuyển hướng một liên kết đến một trang khác trong PHP?

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("http://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

Làm cách nào để chuyển hướng một liên kết đến một trang khác trong PHP?

Đồ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ờ

Làm cách nào để chuyển hướng một trang sang một trang khác trong PHP?

Để đặt chuyển hướng PHP vĩnh viễn, bạn có thể sử dụng mã trạng thái 301 . Vì mã này biểu thị chuyển hướng vô thời hạn nên trình duyệt sẽ tự động chuyển hướng người dùng bằng URL cũ sang địa chỉ trang mới.

Làm cách nào để chuyển hướng một liên kết trong PHP?

Chuyển hướng từ trang này sang trang khác trong PHP thường được thực hiện bằng hai cách sau. Sử dụng hàm tiêu đề trong PHP . Hàm header() là một hàm có sẵn trong PHP được sử dụng để gửi tiêu đề HTTP (Giao thức truyền siêu văn bản) thô tới máy khách.

Bạn có thể chuyển hướng URL đến một trang cụ thể không?

Chuyển hướng cho phép bạn chuyển tiếp khách truy cập của một URL cụ thể đến một trang khác trên trang web của bạn . Trong Công cụ trang web, bạn có thể thêm chuyển hướng bằng cách đi tới Tên miền > Chuyển hướng. Chọn tên miền mong muốn, điền vào URL bạn muốn chuyển hướng đến tên miền khác và thêm URL của trang đích mới.

Làm cách nào để chuyển hướng đến một trang khác trong PHP bằng câu lệnh if?

Nếu bạn đang sử dụng hai phép so sánh, bạn phải sử dụng && hoặc. ở giữa chúng . Nếu bạn đang sử dụng = trong câu lệnh if và otherif thì nó sẽ luôn trả về true. ? . kết quả.