擬似静的とは、実際の静的に対して相対的なものです。通常、検索エンジンの利便性を高めるために、記事のコンテンツから静的ページを生成しますが、一部の情報をリアルタイムで表示したいと考えている人もいます。または、動的スクリプトを使用して問題を解決したい場合もあります。 Web サイトのコンテンツは静的に表示できません。しかし、これでは検索エンジンに対する親しみやすさが失われます。擬似静的技術を生み出した 2 つの中間の方法を見つける方法。表示されているのはHTMLなどの静的なページですが、実際にはASPなどの動的スクリプトを使って処理されます。
疑似静的別名: URL 書き換え
主にSEO用です。 (SEOって何ですか? こんなことは聞かないでください。笑~インターネットで仕事をしている人はSEOを理解していません~~~~)
方法 1:
たとえば、このページ
/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サーバーへの負荷を直接軽減できることです。追記:これも個人的な意見です。
================================================
PHP の疑似静的プログラムの実装方法について、プログラムを例に挙げて説明します。実際、私は以前にこの方法を他のフォーラム コミュニティに投稿しました
。 プログラム例:
/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("Path:Error!"); //相当于soft.php?gid=1&sid=100&softid=8630
//とても簡単です。 ~)
方法 2:
1. Apache 設定ファイル httpd.conf を開きます。
2. #LoadModule rewrite_module modules/mod_rewrite の前の # を削除します
3. httpd.conf を追加します:
<IfModule mod_rewrite.c>RewriteEngine On#RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.htmlRewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2</IfModule> 四 要实现asp帖子URL到php帖子的映射,在 第三步的<IfModule mod_rewrite.c>和</IfModule>之间添加: RewriteMap tolowercase int:tolowerRewriteCond %{QUERY_STRING} (?:boardid|page|id|replyid|star|skin)=d+ [NC]RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{tolowercase:%{QUERY_STRING}}&__is_apache_rewrite=1
5. httpd.conf を保存し、Apache を再起動します
方法 3:
<?php/*功能:PHP伪静态化页面的实现具体用法:例如链接为:test.php/year/2006/action/_add.htmlmod_rewrite();$yearn=$_GET["year"];//结果为'2006'$action=$_GET["action"];//结果为'_add' */function mod_rewrite(){global $_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<Count($vars);$i+=2){$_GET["$vars[$i]"]=$vars[$i+1];}return $_GET;}mod_rewrite();$yearn=$_GET["year"];//结果为'2006'$action=$_GET["action"];//结果为'_add'echo $yearn;echo $action;?> <?php/*
機能: PHP疑似静的ページの実装
具体的な使い方:
たとえば、リンクは次のとおりです: test.php/year/2006/action/_add.html
mod_rewrite();$yearn=$_GET["year"];//结果为'2006'$action=$_GET["action"];//结果为'_add' */function mod_rewrite(){global $_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<Count($vars);$i+=2){$_GET["$vars[$i]"]=$vars[$i+1];}return $_GET;}mod_rewrite();$yearn=$_GET["year"];//结果为'2006'$action=$_GET["action"];//结果为'_add'echo $yearn;echo $action;?>
以上が擬似静的状態とは何ですか? PHP で擬似静的を実装する 3 つの方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。