ホームページ >バックエンド開発 >PHPチュートリアル >PHP 擬似静的ページを実装する 3 つの方法_PHP チュートリアル
PHP の疑似静的書き込みメソッド - 1 つ
疑似静的別名: URL 書き換え
主にSEO用です。 (SEOって何ですか? こんなことは聞かないでください。笑~インターネットで仕事をしている人はSEOを理解していません~~~~)
方法 1:
たとえば、このページ
http://www.BkJia.com /soft.php/1,100,8630.html
実際、処理されるスクリプトはsoft.phpで、パラメータは1,100,8630です
Soft.php?a=1&b=1=100&c=8630 と同等ですが、この URL は覚えるのが難しすぎます。検索エンジンもそれを好みません。
真の静的とは、完全に生成された HTML です。
クライアントがアクセスしたときに直接出力します。スクリプトの説明は不要です。トラフィックが非常に多い場合 (毎日何百万ものアクセスがある場合など)、非常に良い結果が得られます。つまり、この HTML ページはサーバー側に実際に存在します。
もちろん、ウェブサイトのトラフィックがそれほど大きくない場合です。 URL の書き換えが最良の方法です (私の個人的な意見では、トラフィックが多い場合は負荷分散を検討できます。どちらでも構いません)
URL 書き換えには、APACHE や IISREWRITE など、さまざまな方法があります。 PHP スクリプトでも直接処理できます。たとえば、上記の例では、PHP スクリプトが直接処理しています (この方法の利点は、大量のトラフィックがあるときに WEB サーバーの負荷を直接軽減できることです。 PS: これは私の個人的な意見でもあります:
================================================
PHP の疑似静的プログラムの実装方法について、プログラムを例に挙げて説明します。実は、私は以前にこの方法を他のフォーラム コミュニティに投稿したことがあります。
プログラム例:http://www.BkJia.com /soft.php/1,100,8630.html
コード:
//サーバー変数を使用してPATH_INFO情報を取得します。この例では、実行スクリプト名以降の/1,100,8630.htmlです。
if(@$path_info =$_SERVER["PATH_INFO"]){
//パラメータを定期的に一致させます
if(preg_match("//(d+),(d+),(d+).html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //値1を取得
$sid =intval($arr_path[2]); //値100を取得
$softid =intval($arr_path[3]); //値 8630 を取得します
}else die("パス:エラー!");
//soft.php?gid=1&sid=100&softid=8630
と同等//とても簡単です。 ~)
方法 2:
1. Apache 構成ファイル httpd.conf を開きます。
2. #LoadModule rewrite_module modules/mod_rewrite の前の # を削除します
3. httpd.conf を追加します:
#RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.html
RewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2
4. ASP ポスト URL を php ポストにマッピングするには、3 番目のステップで
RewriteCond %{QUERY_STRING} (?:boardid|page|id|replyid|star|skin)=d+ [NC]
RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{to lowercase:%{QUERY_STRING}}&__is_apache_rewrite=1
5. httpd.conf を保存し、Apache を再起動します
/* 機能: PHP疑似静的ページの実装
具体的な使い方:
たとえば、リンクは次のとおりです: test.php/year/2006/action/_add.html
mod_rewrite();
$yearn=$_GET["year"];//結果は「2006」です
$action=$_GET["action"];//結果は '_add' です
*/
関数 mod_rewrite(){
$nav=$_SERVER["REQUEST_URI"];
$script_name=$_SERVER["SCRIPT_NAME"];
$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//この文は末尾の .html または .htm を削除します
$vars =explode("/",$nav);
for($i=0;$i
}
$_GET を返します;
}
mod_rewrite();
$yearn=$_GET["year"];//結果は「2006」です
$action=$_GET["action"];//結果は '_add' です
エコー $yearn;
エコー $アクション;
?>
/*
具体的な使い方:
たとえば、リンクは次のとおりです: test.php/year/2006/action/_add.html
mod_rewrite();
$yearn=$_GET["year"];//結果は「2006」です
$action=$_GET["action"];//結果は '_add' です
*/
関数 mod_rewrite(){
グローバル $_GET;
$nav=$_SERVER["REQUEST_URI"];
$script_name=$_SERVER["SCRIPT_NAME"];
$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);
$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//この文は末尾の .html または .htm を削除します
$vars =explode("/",$nav);
for($i=0;$i
}
$_GET を返します;
}
mod_rewrite();
$yearn=$_GET["year"];//結果は「2006」です
$action=$_GET["action"];//結果は '_add' です
エコー $yearn;
エコー $アクション;
?>
この方法が一番直接的です...個人的には思います!~~~ふふふ...水木忍があなたに提供します...