深入分析url的伪静态之如何去掉index.php

王朝互联网·作者佚名  2012-06-02
窄屏简体版  字體: 小  |  中  |  大  |  超大  

作为一个seoer肯定知道在网站优化,seo优化的时候是需要对url进行优化的,关于wordpress、w主机url的伪静态方法前一段时间我已经提到,之所以要再次提出来就是分析下上文所写到关于去除index.php的方法的一些弊端以及对上文方法的修正办法。

url去除index的方法就是通过增加一个404页面来对url实行一个指引的方式。网上对此方法的看法大多都是尽量不要去用的说法,但我用了一段时间觉得这个方法还行,这个方法不仅会剪短url还会基本省去一个网站404页面的制作这一步骤。

因为本站刚开始不久起初文章也不是很多没有发现前文的安装方法有什么弊端,但是随着文章的不断更新,笔者终于发现通过404页面来实现url伪静态的方法将会使主页的翻页功能不能使用。笔者本以为自己网站优化的已经差不多了没想到都打算开始外部链接优化的时候才发现url优化出了问题。具体问题:进入网站首页blog.***.com 网站底部找到翻页直接翻页发现直接从第一页翻到第?(任何页)是可以的但是你要是想从?(任何页)翻到其他页却不行了,翻页链接也会出现一些错乱的现象。

起初遇到这个现在让我一头雾水,不知该从何下手斟酌分析了许久,终于肯定是那个404页面的代码有问题,这便开始了搜索资料的工作。经过反复试验总结,终于得知那个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-handler.php’;

$_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);

? >

只需要重新建一个文本文档并将其重命名为404.php,然后用你的ftp将其上传至网站根目录下就可以了。大连SEO http://blog.zzzuo.com 原创 转载请注明。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航