Làm thế nào viết lại url trong php với ví dụ?

Perch không giả định nhiều về máy chủ web của bạn. Một trong những điều chúng tôi không làm theo mặc định là viết lại tất cả các URL của trang web của bạn. Điều này là vì một vài lý do. Điều đó có nghĩa là bạn có thể dễ dàng thêm Perch vào chỉ một vài trang của một trang web hiện có hoặc sử dụng nó để chỉnh sửa các bit của một số ứng dụng khác. Điều đó cũng có nghĩa là nếu bạn thấy mình đang làm việc trên một trang web không có khả năng viết lại URL, bạn vẫn có thể sử dụng Perch

Điều đó nói rằng, bạn có thể dễ dàng viết lại URL theo bất kỳ cách nào bạn muốn. Thông tin này rất nhiều cho cá rô. Perch Runway viết lại URL của bạn vì nó hoạt động với bộ điều khiển phía trước và do đó có hệ thống định tuyến riêng. Vì vậy, nếu bạn đang sử dụng Runway, hãy xem tài liệu định tuyến

Các. tập tin htaccess

Bạn thêm tất cả các quy tắc này vào một tệp có tên .htaccess được lưu vào thư mục gốc của trang web của bạn. Tệp này phải được đặt tên chính xác như thế này, với ____16_______ biến nó thành tệp ẩn và không có phần mở rộng

Xóa phần mở rộng tệp

Một điều bạn có thể muốn làm là ẩn phần mở rộng. Thay vì truy cập about/history.php, bạn có thể truy cập

<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
0 mà không có
<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
1 ở cuối. Để thực hiện việc này, hãy thêm các quy tắc sau vào tệp .htaccess của bạn. Các quy tắc này sẽ lấy bất kỳ URL đến nào không có phần mở rộng và thêm
<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
1 khi gửi yêu cầu đến máy chủ. Khách truy cập của bạn sẽ không cần phần mở rộng tệp nhưng máy chủ sẽ thấy tệp như thể nó có phần mở rộng

RewriteEngine on
# Redirect to PHP if it exists.
# e.g. example.com/foo will display the contents of example.com/foo.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+)$ $1.php [L,QSA]

Trong Perch, sau đó, bạn có thể cập nhật điều hướng của mình để hiển thị các liên kết mà không cần

<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
1. Để thực hiện việc này, hãy thêm tùy chọn
<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
5 khi xuất điều hướng của bạn bằng cách sử dụng
<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
6

<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>

Viết lại URL Blog

Chúng tôi cũng có thể viết lại URL blog. Khi tạo blog, chúng tôi đã sử dụng chuỗi truy vấn để tải các trang của mình. Ví dụ

<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
7

Một URL được viết lại có thể trông như thế này

<?php 
  perch_pages_navigation([
    'from-path' => '/about',
    'levels' => 1,
        'hide-extensions' => true
  ]);
?>
8

Đối với các trang, máy chủ vẫn 'thấy' một chuỗi truy vấn. Tuy nhiên, khách truy cập của bạn sử dụng URL trông đẹp hơn nhiều

Một lần nữa, chúng tôi thêm phần này vào tệp .htaccess sau dòng cho phép bạn liên kết đến các trang mà không cần phần mở rộng tệp

RewriteRule ^blog/([a-zA-Z0-9-/]+)$ /blog/post.php?s=$1 [L]

Khi bạn đã hoàn thành việc này, hãy nhớ đi tới Cài đặt trong Bảng điều khiển và cũng cập nhật đường dẫn Bài đăng trên Blog để thể hiện định dạng URL mới của bạn

Thêm URL blog

Bạn có thể làm nhiều việc hơn là viết lại các URL cơ bản. Các quy tắc sau đây có thể giúp với các trang khác nhau trong blog

Lưu trữ danh mục

RewriteRule ^blog/category/([a-zA-Z0-9-/]+)/page/([0-9]+)/{0,1}$ /blog/archive.php?cat=$1&page=$2 [L]
RewriteRule ^blog/category/([a-zA-Z0-9-/]+)$ /blog/archive.php?cat=$1 [L]

Ngày lưu trữ theo năm

RewriteRule ^blog/date/([a-zA-Z0-9-/]+)/page/([0-9]+)/{0,1}$ /blog/archive.php?year=$1&page=$2 [L]
RewriteRule ^blog/date/([a-zA-Z0-9-/]+)$ /blog/archive.php?year=$1 [L]

Lưu trữ thẻ

RewriteRule ^blog/tag/([a-zA-Z0-9-/]+)/page/([0-9]+)/{0,1}$ /blog/archive.php?tag=$1&page=$2 [L]
RewriteRule ^blog/tag/([a-zA-Z0-9-/]+)$ /blog/archive.php?tag=$1 [L] 

Xem trước bài đăng

RewriteRule ^blog/([a-zA-Z0-9-/]+)/preview$ /blog/post.php?s=$1&preview=all [L]

Nếu bạn đang làm nhiều việc này, đối với nhiều loại trang khác nhau thì đó có thể là một dấu hiệu tốt cho thấy bạn nên xem xét nâng cấp trang web lên Runway. Nó xử lý các thao tác viết lại này theo cách đơn giản hơn nhiều ngay từ trong bảng điều khiển. Tuy nhiên, để viết lại đơn giản, bạn sẽ có thể đến được nơi bạn cần trong .htaccess của mình

Viết lại URL trong PHP là gì?

Về cơ bản, chúng tôi đang cố gắng đẩy tất cả các yêu cầu được gửi tới máy chủ vào một tệp gốc duy nhất , vì vậy một yêu cầu được gửi tới / . php sẽ được chuyển đến tệp gốc mà chúng tôi chọn. thường chỉ số.

Viết lại URL với ví dụ là gì?

Viết lại url là quá trình nối thêm hoặc sửa đổi bất kỳ cấu trúc url nào trong khi tải trang . Yêu cầu do khách hàng thực hiện luôn là một yêu cầu mới và máy chủ không thể xác định liệu yêu cầu hiện tại được gửi bởi một khách hàng mới hay cùng một khách hàng trước đó.

Làm cách nào để tạo quy tắc viết lại trong PHP?

Đây là ví dụ đơn giản để bắt đầu. .
cấu trúc thư mục. Có hai tệp cần thiết trong thư mục gốc,. .
htaccess RewriteEngine trên RewriteRule ^inc/. *$ chỉ số. php RewriteCond %{REQUEST_FILENAME}. -f Quy tắc viết lại ^(. *)$ chỉ số. php [QSA,L].
mục lục. php. .
Xác định nguồn hoàn chỉnh ( 'INCLUDE_DIR', dirname ( __FILE__ ). '/

Quy tắc Viết lại URL là gì?

Khái niệm viết lại URL rất đơn giản. Khi khách hàng gửi yêu cầu đến máy chủ Web cho một URL cụ thể, mô-đun viết lại URL sẽ phân tích URL được yêu cầu và thay đổi nó thành một URL khác trên cùng một máy chủ.