首頁 >後端開發 >php教程 >如何使用「.htaccess」或 PHP 內建函數在 PHP 中實作 URL 重寫?

如何使用「.htaccess」或 PHP 內建函數在 PHP 中實作 URL 重寫?

Barbara Streisand
Barbara Streisand原創
2024-12-20 03:33:09972瀏覽

How Can I Implement URL Rewriting in PHP Using `.htaccess` or PHP's Built-in Functions?

PHP 中的URL 重寫:建立友善URL

簡介

URL 重寫是一種用於轉換複雜、將可能很長的URL 轉換為更用戶友好和可讀的格式。在本文中,我們將探討如何使用兩種不同的方法在 PHP 中實作 URL 重寫:.htaccess 路由和 PHP 路由。

使用 mod_rewrite 的 .htaccess 路由

此方法涉及將 .htaccess 檔案新增至根目錄並配置 Apache Web 伺服器以使用 mod_rewrite。以下是一個RewriteRule 範例:

RewriteEngine on
RewriteRule ^/?Some-text-goes-here/([0-9]+)$ /picture.php?id=

此規則指示Web 伺服器符合模式「Some-text-goes-here/」的任何URL應在內部重寫為「picture.php?id =”對最終使用者不可見。

PHP 路由

另一種方法是使用 PHP 來處理 URL 重寫。這涉及在 .htaccess 中設定一個「FallbackResource」:

FallbackResource /index.php

此設定告訴伺服器,如果請求的檔案不存在,則將所有請求定向到 index.php 檔案。在index.php中,您可以實現自己的URL解析邏輯:

$path = ltrim($_SERVER['REQUEST_URI'], '/');
$elements = explode('/', $path);
if (empty($elements[0])) {
    ShowHomepage();
} else {
    switch (array_shift($elements)) {
        case 'Some-text-goes-here':
            ShowPicture($elements);
            break;
        case 'more':
            ...
        default:
            header('HTTP/1.1 404 Not Found');
            Show404Error();
    }
}

這種技術可以使URL解析更加靈活,並支援資料庫驅動和條件URL。

以上是如何使用「.htaccess」或 PHP 內建函數在 PHP 中實作 URL 重寫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn