现在的位置: 首页 > wordpress > 正文

完美解决win主机wordpress伪静态

2013年05月27日 wordpress ⁄ 共 2246字 ⁄ 字号 评论 6 条 ⁄ 阅读 597 views 次

考虑权衡再三,还是决定把网站迁回国内,备案就备案吧,虽说国外的lin服务器虽说性能上支持wordpress比较好,但搜索引擎对没有备案的网站还是不友好,备案的速度也很快,仅仅三天时间一切OK,但在win主机对wordpress伪静态的支持上面费了点周折,目前已经完美解决,解决方法与大家共享一下。

第一步,建立404.php文件,下面是代码,放置在网站的根目录下面。

<?php
// This is the default file for the site. Usually index.php
$default = 'index.php';
 
// The name of this file.
// Set this value for the URL in Custom Error Properties of your website in IIS.
// Goto: IIS Manager > Websites > [Site Name] > Properties > Custom Errors >
// 404 & 404;2 & 404;3 > URL (Requires a '/' prefix in IIS).
$thisfile = '404.php'; //404.php修改为你的404页面名称即可
 
$_SERVER['ORIG_PATH_TRANSLATED'] = str_replace($thisfile, $default, $_SERVER
 
['ORIG_PATH_TRANSLATED']);
$_SERVER['SCRIPT_FILENAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_FILENAME']);
$_SERVER['ORIG_PATH_INFO'] = str_replace($thisfile, $default, $_SERVER['ORIG_PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_NAME']);
$_SERVER['PHP_SELF'] = str_replace($thisfile, $default, $_SERVER['PHP_SELF']);
$_SERVER['PATH_INFO'] = false;
 
$qs =& $_SERVER['QUERY_STRING'];
$ru =& $_SERVER['REQUEST_URI'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['URL'] = $ru = substr($qs, $pos);
$qs = trim(stristr($ru, '?'), '?');
 
// Required for WordPress 2.8+
$_SERVER['HTTP_X_ORIGINAL_URL'] = $ru;
 
// Fix GET vars
foreach ( $_GET as $var => $val ) {
  if ( substr($var, 0, 3) == '404') {
    if ( strstr($var, '?') ) {
      $newvar = substr($var, strpos($var, '?') + 1);
      $_GET[$newvar] = $val;
    }
    unset($_GET[$var]);
  }
  break;
}
include($default);
?>

第二步,在服务器后台设置使用自定义出错页:使用web目录中的404.php文件来自定义内容。

第三步,在网站后台就可以设置自己喜欢的固定链接了,但是中文TAG标签支持不友好,继续修改!

第四步,打开wordpress\wp-includes目录下的class-wp.php文件。查找到下面代码

if ( isset($_SERVER['PATH_INFO']) )
                $pathinfo = $_SERVER['PATH_INFO'];
            else
                $pathinfo = '';
            $pathinfo_array = explode('?', $pathinfo);
            $pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
            $req_uri = $_SERVER['REQUEST_URI'];

替换为如下代码

if ( isset($_SERVER['PATH_INFO']) )  
                $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'utf-8', 'GBK');  
            else 
                $pathinfo = '';  
            $pathinfo_array = explode('?', $pathinfo);  
            $pathinfo = str_replace("%", "%25", $pathinfo_array[0]);  
            $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8', 'GBK');

所有步骤全部完成,现在和国外的LIN主机下一样的伪静态了!本站就是采用这种方法完成的。

如果你认为这篇文章对您有所帮助的话,请点击左侧百度分享按钮收藏或分享给朋友吧!



目前有 6 条留言    访客:5 条, 博主:1 条

  1. 新奇趣 2013年05月27日 下午 2:30  @回复  Δ-49楼 回复

    不知使用这个方法对搜索引擎好不好,反正当时我看到要弄什么404我就放弃了


    • 管理员
      得道SEO 2013年05月28日 下午 12:27  @回复  ∇地下1层 回复

      应该没什么影响,收录正常

  2. 日照婚纱摄影 2013年05月30日 上午 8:32  @回复  Δ-48楼 回复

    顶一下楼主!

  3. 企业文化标语 2013年05月31日 上午 11:31  @回复  Δ-47楼 回复

    喜欢博客的风格

  4. 易美生活网 2013年06月12日 下午 2:00  @回复  Δ-46楼 回复

    这么快就备案了,效率很高

  5. diamond die 2013年06月25日 下午 12:01  @回复  Δ-45楼 回复

    技术文啊,不错。

给我留言

留言无头像?


客服电话15252185118
联系站长
点击这里给我发消息
×