真是悲剧啊,先是网站被黑,惨不忍睹,后来FTP密码和数据库密码忘记了。。。(还没有备份过的习惯)
经历网站换空间,换数据库,这数据库操作真是麻烦。。。
从linux主机转到windows主机,这个url固定链接里的index.php真是个大麻烦,以前文章的url都无法对应到现在的url了,蜘蛛进来肯定都是404啊。。。
案例分析:
首先 虚拟主机操作不到.htaccess,php.ini这些文件,国外的空间访问速度又慢,操作数据不易啊。
步骤1:添加一个404页面,通过添加一个404.php,
<!–p $qs = $_SERVER[‘QUERY_STRING’]; $_SERVER[‘REQUEST_URI’] = substr($qs, strpos($qs, ‘:80’)+3); $_SERVER[‘PATH_INFO’] = $_SERVER[‘REQUEST_URI’]; include(‘index.php’);–>
(ps:里面的标点符号都是英文状态下的半角输入)
上传到ftp主目录,在空间的控制面板里面,自定义404.php为出错页面,可悲剧的是,我的空间管理里面只支持html或htm为自定义404页面,404.php无法识别,然后我又悲剧的到wordpress插件里面寻找相关插件,askapache-google-404这款插件,还算比较好用,自定义了404出错页面为404.php,直接将固定链接的index.php去掉,完成操作之后,悲剧又来了。。。
最终文章页的url可以搞定,可分类目录的url无法打开,还是404啊,悲剧!
解决方法我大致搜索了一下:
问题解释:以前wp2.7版本的时候好像没什么问题,应该是Wordpress2.7.1以上版本代码更改造成的,破坏了自定义404.php中对 Request_URI变量的设置, 而产生分页链接的函数get_pagenum_link是基于Request_URI的.
步骤:
下载你博客服务器目录下面的wp-settings.php文件:
使用文本编辑器打开此文件找到第64行左右的:
if ( empty( $_SERVER[‘REQUEST_URI’] ) || ( php_sapi_name() != ‘cgi-fcgi’ && preg_match( ‘/^Microsoft-IIS//’, $_SERVER[‘SERVER_SOFTWARE’] ) ) ) {
替换为:
if ( empty( $_SERVER[‘REQUEST_URI’] ) ) {
保存并重新上传替换原文件,问题解决!!!
上述这个方法我没有实践,不过估计是可以的,使用的人应该比较多,不过我感觉这个对蜘蛛特别不友好,404转向的页面,效果能有多大呢?搞不好,估计会被降权吧。不过写博客的人,不一定是做seo的,如果对蜘蛛无所谓的话,可以参考此种方法!
具体链接在此http://blog.jiajieit.net.ru/2009/12/202.html
因为考虑到对蜘蛛不友好,我没有采用上述方法,在看了一篇文章 http://blog.163.com/akins@126/blog/static/47553796201072433523150/,我又进入了虚拟主机管理界面,偶然发现竟然有ISAPI程序安装选项,进入之后发现,动态文件dll是必须安装在FTP空间的others文件夹里的,我就到网上下载了个ISAPI_Rewrite3_0056_Lite.msi 下载地址:http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0056_Lite.msi,安装在本地之后,在安装目录里面找到ISAPI_Rewrite.dll文件,我迅速进入ftp空间,新建了个与主目录wwwroot同级的others文件夹,上传ISAPI_Rewrite.dll,然后在虚拟空间管理界面,安装了一下。
最后在wordpress后台的固定链接里面直接去掉了index.php前缀,打开网站之后发现和linux主机一样了,支持rewrite伪静态了,效果不错!
终于搞完了,累死。。。。。。。。。。。。。。。。。。。。。。。。。。
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
- 原文网址: https://sunweiwei.com/240/
- 最后修改时间: 2012年05月14日 00:46:22
22 2 月, 2011 at 上午 9:45
哎 累就一个字啊。。。
20 4 月, 2011 at 下午 8:45
说的很好 学习了
16 8 月, 2011 at 下午 5:06
恩 很实用 。。
9 1 月, 2012 at 下午 3:21
努力,来支持下!