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