IIS下wordpress利用404页面实现伪静态的完美解决方案

丶灬走出姿态 提交于 2019-12-23 11:13:32

一般的虚拟主机都不支持urlrewrite功能,想要实现伪静态就得另外找方法。下面介绍两种IIS下wordpress利用404页面实现伪静态的方法:

方法一

  1. $qs = $_SERVER['QUERY_STRING'];
  2. $qsu = mb_convert_encoding("$qs","UTF-8","GBK");
  3. $_SERVER['REQUEST_URI']= substr($qsu, strpos($qsu,':80')+3);//转换编码以支持中文的TAG
  4. $_SERVER['PATH_INFO']= $_SERVER['REQUEST_URI'];
  5. include("/index.php");

方法简单,代码也比较少,可实现页面伪静态。
唯一缺点:会出现多个首页
比如:

http://www.hujuntao.com/archives/index.php

http://www.hujuntao.com/archives/archives/index.php

http://www.hujuntao.com/archives/archives/…/index.php

实际上这些地址是不存在的,但是打开上面地址你会发现显示的是首页的内容。
方法二:

  1. header("Content-type: text/html; charset=utf-8");
  2. $default ='index.php';
  3. $thisfile ='404.php';
  4.  
  5. $_SERVER['ORIG_PATH_TRANSLATED']= str_replace($thisfile, $default, $_SERVER['ORIG_PATH_TRANSLATED']);
  6. $_SERVER['SCRIPT_FILENAME']= str_replace($thisfile, $default, $_SERVER['SCRIPT_FILENAME']);
  7. $_SERVER['ORIG_PATH_INFO']= str_replace($thisfile, $default, $_SERVER['ORIG_PATH_INFO']);
  8. $_SERVER['SCRIPT_NAME']= str_replace($thisfile, $default, $_SERVER['SCRIPT_NAME']);
  9. $_SERVER['PHP_SELF']= str_replace($thisfile, $default, $_SERVER['PHP_SELF']);
  10. $_SERVER['PATH_INFO']=false;
  11.  
  12. $qs =& $_SERVER['QUERY_STRING'];
  13. $qs = mb_convert_encoding("$qs","UTF-8","GBK");//转换编码以支持中文URL
  14. $ru =& $_SERVER['REQUEST_URI'];
  15. $pos = strrpos($qs,'://');
  16. $pos = strpos($qs,'/', $pos +4);
  17. $_SERVER['URL']= $ru = substr($qs, $pos);
  18. $qs = trim(stristr($ru,'?'),'?');
  19.  
  20. // Required for WordPress 2.8+
  21. $_SERVER['HTTP_X_ORIGINAL_URL']= $ru;
  22.  
  23. // Fix GET vars
  24. foreach( $_GET as $var => $val ){
  25. if( substr($var,0,3)=='404'){
  26. if( strstr($var,'?')){
  27. $newvar = substr($var, strpos($var,'?')+1);
  28. $_GET[$newvar]= $val;
  29. }
  30. unset($_GET[$var]);
  31. }
  32. break;
  33. }
  34. include($default);

代码比较多,有点复杂。可实现页面伪静态,不影响正常的404页面显示,中文TAG不出现找不到的情况,不出出现多个首页。

下面教你怎么利用这段代码实现伪静态
1、首先复制上面这段代码另存为404.php保存到网站根目录
2、设置站点404错误页面。虚拟主机,现在大部分虚拟主机控制面板都支持自定义404错误页面,把地址设置为”/404.php”。自己的服务器,可以通过网站属性-自定义错误来设置404错误页面。
3、进入WordPress后台固定连接选项建立一个自定义结构。在输入框中输入您想要的结构 例如:/archives/%post_id%.html

设计蜂巢就是采用的该方法完美实现伪静态

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!