Maison >développement back-end >tutoriel php >Analyser la méthode d'implémentation basée sur PHP pseudo-statique
Je fais du travail de développement PHP. J'ai entendu parler de "pseudo-statique" depuis longtemps au cours du processus de développement. Mais cela n’a jamais été compris.
J'ai finalement pris la décision aujourd'hui d'en apprendre davantage sur cet aspect.
Tout d'abord, qu'est-ce que la pseudo-statique :
La pseudo-statique, également connue sous le nom de réécriture d'URL, est une URL dynamique qui ressemble à une URL statique. En d'autres termes, les pages Web dynamiques suppriment les paramètres des pages Web dynamiques en réécrivant la méthode URL, mais il n'est pas nécessaire d'implémenter des pages réécrites dans le répertoire réel des pages Web.
De plus, deux analyses de noms sont ajoutées
URL statique : document HTML statique pur, page Web pouvant être interrogée à l'aide du type de fichier :htm
URL dynamique : le contenu est stocké dans la base de données, affiche le contenu selon les exigences, l'URL commence par ? # & Afficher différents paramètres, tels que : news.php? lang=cn&class=1&id=2
Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise
Dynamique, statique , avantages et inconvénients entre pseudo-statique (nouveau)
URL dynamiques
Tout d'abord, les URL dynamiques sont actuellement "incompatibles" pour Google L'affirmation « explorer » est fausse. Google peut très bien gérer les URL dynamiques et les explorer en douceur. Deuxièmement, l'affirmation « les paramètres ne peuvent pas dépasser 3 » est également incorrecte. Google peut explorer les URL dynamiques avec plus de 3 paramètres. être minimisé pour éviter que l'URL ne soit trop longue.
Deuxièmement, les URL dynamiques présentent certains avantages. Comme mentionné ci-dessus, news.php ? lang=cn&class=1&id=2 Par exemple, les paramètres de l'URL indiquent avec précision à Google que la langue du contenu de cette URL est cn, qu'elle appartient à la catégorie 1 et que l'ID de contenu est 2, ce qui facilite l'identification et l'identification par Google. traiter le contenu.
Enfin, les URL dynamiques doivent être les plus concises possibles, notamment les paramètres d'identifiant de session (sid) et de requête (query), qui peuvent facilement conduire à un grand nombre de pages identiques.
URL statique
Tout d'abord, l'avantage absolu de l'URL statique est sa clarté, /product/nokia/n95.html et /about.html peuvent être facilement compris , ce qui peut entraîner un nombre de clics relativement élevé dans les résultats de recherche.
Deuxièmement, les URL statiques ne constituent peut-être pas la meilleure forme d'URL. Comme mentionné ci-dessus, les URL dynamiques peuvent indiquer à Google certains paramètres qui peuvent être reconnus, tandis que les URL statiques ne seront pas correctement organisées si la mise en page du document n'est pas appropriée. (par exemple, être trop plat), placer tous les documents HTML dans le répertoire racine) et d'autres facteurs, il n'est pas aussi riche en informations de référence que les URL statiques fournissent à Google.
Enfin, Le Sishu pense-t-il qu’il y a un sens caché dans l’article de Google ? "La mise à jour des pages avec ce type d'URL peut prendre du temps, surtout lorsque la quantité d'informations augmente rapidement, car le code de compilation doit être modifié pour chaque page individuelle. Bien qu'il s'agisse d'un site Web, est-ce la même chose dans le système Google." ? Un tel problème existe-t-il ?
URL pseudo-statique
Tout d'abord, les URL pseudo-statiques ne peuvent pas rendre les URL dynamiques "statiques". Les URL pseudo-statiques ne sont qu'une réécriture d'URL dynamiques. Google ne considérera pas le pseudo-statique comme un document HTML.
Deuxièmement, le pseudo-statique est souhaitable, mais l'accent doit être mis sur la suppression des paramètres redondants, la standardisation des URL et l'évitement autant que possible des pages en double.
Enfin, le pseudo-statique présente de grands dangers potentiels. Il est préférable de l'utiliser lorsque vous êtes familier avec le système du site Web, la structure du site Web, la distribution du contenu et la signification des paramètres.
Lors de l'écriture de règles pseudo-statiques, vous devez conserver les paramètres importants et ne pas rationaliser tous les paramètres importants, comme news.php dans l'exemple précédent ? lang=cn&class=1&id=2 est mieux réécrit sous le nom news-cn-class1-id2.html plutôt que trop concis et réécrit sous le nom news-2.html.
De plus, le pseudo-statique ne doit pas contenir de paramètres d'ID de session (sid) et de requête (query), /product.asp? Pour une URL dynamique telle que sid=98971298178906&id=1234, le sid qu'elle contient est initialement reconnu et bloqué par Google. Cependant, s'il est réécrit sous la forme /product/98971298178906/1234, Google ne pourra pas seulement le reconnaître, mais le sera également. provoquer des pages en double illimitées dans l'ensemble du site (chaque session, un nouvel identifiant de session sera généré).
Devrions-nous choisir pseudo-statique ou vrai statique
1. Il n'y a aucune différence entre l'utilisation du vrai statique et du faux statique pour le référencement
2. L'utilisation du vrai statique peut causer des problèmes dommages au disque Dommages et affecteront les performances du forum
3. L'utilisation de pseudo-statique occupera une certaine quantité d'occupation du processeur, et une utilisation intensive entraînera une surcharge du processeur
4. Le point le plus important est que nous avons besoin de statique Pour le bien du référencement
Donc :
1. L'utilisation d'une vraie méthode statique peut être directement éliminée, car peu importe la façon dont elle est générée, elle sera très nocive pour le disque dur.
2. Puisque l'effet des vrais et faux statiques est le même, nous pouvons choisir le pseudo statique.
3. Cependant, une utilisation intensive du pseudo-statique entraînera une surcharge du processeur.
4. Donc tant qu’on ne l’utilise pas en grande quantité, ça va.
5. Puisque le statique est uniquement destiné au référencement, nous n'avons besoin que de pseudo-statiques pour le référencement, et les utilisateurs n'ont pas besoin de l'utiliser.
6. Il suffit donc d'utiliser du pseudo-statique dans l'Archiveur spécialement prévu pour le crawl SEO.
7. Merci de votre patience en lisant mon article.
8. Si vous avez des questions ou des opinions différentes, n'hésitez pas à soumettre
Commentaires sur le pseudo-statique et le vrai statique
Il existe une différence essentielle entre le vrai statique et le pseudo-statique statique de. Le traitement d'un HTML pur pour les utilisateurs qui naviguent et d'un PHP qui appelle plusieurs données nécessitent beaucoup moins de CPU que le premier. Je me souviens que quelqu'un a dit un jour que les téléchargements HTML étaient fréquemment lus et écrits sur le disque dur. Il a dit cela comme si la lecture de la base de données ne nécessitait pas de lecture et d'écriture sur le disque. De plus, il existe de nombreux fichiers PHP dispersés en cache. également placé sur le disque dur. Ces lectures ne nécessitent-elles pas d'opérations sur le disque ? ridicule.
L'objectif peut être atteint en lisant un seul html + image Flash et autres pièces jointes. Pourquoi s'embêter à lire la base de données, à lire le fichier cache php, à réintégrer la sortie des données et à ajouter une image Flash et d'autres pièces jointes ? C'est si gênant ? La page d'accueil du CMS ne nécessite pas beaucoup d'interactions, et la version forum ne doit pas être utilisée ici. Au contraire, ce qu'il faut considérer davantage, c'est : la beauté ! compatible! Des informations intuitives ! performance! Et de la stabilité !
Quatre façons d'implémenter le transfert pseudo-statique en PHP :
<?php //伪静态方法一 // localhost/php100/test.php?id|1@action|2 $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; echo $Php2Html_FileUrl."<br>";// /php100/test.php?id|1@action|2 $Php2Html_UrlString = str_replace("?","",str_replace("/", "", strrchr(strrchr($Php2Html_FileUrl, "/"),"?"))); echo $Php2Html_UrlString."<br>";// id|1@action|2 $Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString); print_r($Php2Html_UrlQueryStrList);// Array ( [0] => id|1 [1] => action|2 ) echo "<br>"; foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr) { $Php2Html_TmpArray = explode("|", $Php2Html_UrlQueryStr); print_r($Php2Html_TmpArray);// Array ( [0] => id [1] => 1 ) ; Array ( [0] => action [1] => 2 ) echo "<br>"; $_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; } //echo '假静态:$_GET变量<br />'; print_r($_GET); // Array ( [id|1@action|2] => [id] => 1 [action] => 2 ) echo "<br>"; echo "<hr>"; echo $_GET[id]."<br>";// 1 echo $_GET[action];// 2 ?>
<?php //伪静态方法二 // localhost/php100/test.php/1/2 $filename = basename($_SERVER['SCRIPT_NAME']); echo $_SERVER['SCRIPT_NAME']."<br>";// /php100/test.php echo $filename."<br>";// test.php if(strtolower($filename)=='test.php'){ if(!empty($_GET[id])){ $id=intval($_GET[id]); echo $id."<br>"; $action=intval($_GET[action]); echo $action."<br>"; }else{ $nav=$_SERVER['REQUEST_URI']; echo "1:".$nav."<br>";// /php100/test.php/1/2 $script=$_SERVER['SCRIPT_NAME']; echo "2:".$script."<br>";// /php100/test.php $nav=ereg_replace("^$script","",urldecode($nav)); echo $nav."<br>"; // /1/2 $vars=explode("/",$nav); print_r($vars);// Array ( [0] => [1] => 1 [2] => 2 ) echo "<br>"; $id=intval($vars[1]); $action=intval($vars[2]); } echo $id.'&'.$action; } ?>
<?php //伪静态方法三 function mod_rewrite(){ global $_GET; $nav=$_SERVER["REQUEST_URI"]; echo $nav."<br>"; $script_name=$_SERVER["SCRIPT_NAME"]; echo $script_name."<br>"; $nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1); echo $nav."<br>"; $nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm echo $nav."<br>"; $vars = explode("/",$nav); print_r($vars); echo "<br>"; for($i=0;$i<Count($vars);$i+=2){ $_GET["$vars[$i]"]=$vars[$i+1]; } return $_GET; } mod_rewrite(); $year=$_GET["year"];//结果为'2006' echo $year."<br>"; $action=$_GET["action"];//结果为'_add' echo $action; ?>
<?php //伪静态方法四 //利用server变量 取得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 }else die('Path:Nothing!'); ?>
Si vous ne souhaitez pas utiliser PHP pour implémenter le transfert pseudo-statique, vous pouvez utiliser la fonction url rewrite
fournie avec des serveurs tels qu'apache, nginx et iis sont configurés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!