搜尋
首頁後端開發PHP問題php如何做偽靜態處理

php如何做偽靜態處理

Sep 19, 2019 am 10:30 AM
php

偽靜態是什麼:

php如何做偽靜態處理

網站分為動態網站和靜態網站,我們常見的以html結尾的一般都是靜態頁面,以.php.asp結尾的頁面一般是動態網站,動態網站是有和資料庫進行互動才被稱為動態網站,動態網站由於不容易被搜尋引擎搜尋所以才有了偽靜態這麼一說。 (推薦學習:PHP程式設計從入門到精通

偽靜態顧名思義就是假的靜態網站,也就是說動態網站為了方便被搜尋引擎收錄,利用伺服器的rewirte實現的假靜態的過程。

 那PHP實作偽靜態有多少種方法了?

1、使用apache的URL重寫規則,這個大家都懂,在apache裡面設定, 這裡同學們都造,只列舉一段簡單的設定

RewriteEngine On
RewriteRule ^/test.html index.php?controller=index&action=test [L]

2、使用PHP的pathinfo ,  你是不是有看到有的網站這樣玩'www.xxx.com/index.php/c/index/a/test/id/100 ' , 當然要支援這種你需要把'php.ini' 中的參數

'cgi.fix_pathinfo' 設為1。拿'www.xxx.com/index.php/c/index/a/test/id/100'來舉例

echo $_SERVER['PATH_INFO']; //输出'/c/index/a/test/id/100'

到這,應該明白了吧,你再對這段進行解析,分配實際位址

3、使用404機制,一般情況下偽靜態都是實際不存在的頁面,因此可以使用apache 404配置,但是有些問題,就是'post'類型的請求會被拋棄,導致你無法取得'$_POST',

但是'$_GET'仍然可以取得, 假設此處404頁面為'404page.php', apache 設定如下:

ErrorDocument 404 /404page.php

然後在'404page.php'中嵌入以下程式碼

header("HTTP/1.1 200 OK"); //这里一定要有,不然状态就是404

$reqUrl = $_SERVER['REQUEST_URI']; // 请求地址

/**
* 从URL中解析参数
*/
function parseUrlParams($queryUrl)
{
    $arr = explode('?', $queryUrl);
    parse_str($arr[1], $param);
    if($param)
    {
        foreach($param as $key => $value)
        {
            $_GET[$key] = $value;
        }
    }
}

parseUrlParams($reqUrl); // url解析参数

//然后你就可以使用 $reqUrl 根据自己的规则匹配不同的实际请求地址
if(preg_match('#^/test.html#is', $reqUrl, $matches))
{
   include('index.php');
   die();
}

以上是php如何做偽靜態處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)