ホームページ  >  記事  >  バックエンド開発  >  PHPで擬似静的処理を行う方法

PHPで擬似静的処理を行う方法

(*-*)浩
(*-*)浩オリジナル
2019-09-19 10:30:164741ブラウズ

疑似静的とは:

PHPで擬似静的処理を行う方法

Web サイトは動的 Web サイトと静的 Web サイトに分けられます。html で終わる一般的な Web サイトは一般に静的ページです。 . 、.php.asp で終わるページは通常、動的 Web サイトです。動的 Web サイトは、データベースと対話するときに動的 Web サイトと呼ばれます。動的 Web サイトは検索エンジンによって簡単にインデックス付けされないため、擬似静的 Web サイトと呼ばれます。 (推奨学習: PHP プログラミングの入門から熟練度まで )

疑似静的とは、名前が示すように、偽の静的 Web サイトです。エンジンでは、動的 Web サイトはサーバーの rewrite False 静的プロセスを使用して実装されます。

それでは、PHP で擬似静的を実装する方法は何通りあるでしょうか?

1, Apache の URL 書き換えルールを使用する 、これは誰もが知っています。Apache で設定します。ここにいる誰もがそれを作成しています。簡単な設定を列挙するだけです。

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

2、 PHP のパス情報を使用します 、これを実行している Web サイトをいくつか見たことがありますか '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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。