‘Enforce www.and index.php’实现IIS下虚拟主机301重定向

困扰很久的301重定向问题了,相信很多Windows主机的用户都会遇到和我一样的问题,特共享此插件,希望它没有辜负大家

这个插件是由Enforce www. Preference修改而来的,改插件代码如下

if ( strpos($_SERVER['HTTP_HOST'], 'www.') === 0  && strpos(get_bloginfo('home'), 'http://www.') === false ) {
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['PATH_INFO']);
exit();
} elseif ( strpos($_SERVER['HTTP_HOST'], 'www.') !== 0 && strpos(get_bloginfo('home'), 'http://www.') === 0 ) {
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.' . $_SERVER['HTTP_HOST'] . $_SERVER['PATH_INFO']);
exit();
}
?>

经过测试发现此插件并不完全适用于Windows主机下,http://bestjq.com直接使用该插件的结果是主页显示空白页,而其他页面均完美通过代码实现了301转发,去除第一段if 则实现301转发,但是主页转发后并没有去除“index.php”这点是非常让人觉得遗憾的地方,结果一些时间的思考终于找到了完美的解决办法,对if else语句进行了部分修改,经过测试能够完美实现Windows主机下强制加入/去掉WWW前缀和去除主页index.php后缀,欢迎大家下载使用,如有更好的修改方法或者有问题请告诉我。

下载地址:http://bestjq.com/wp-content/uploads/Enforce-www-and-index.rar

使用说明:1.有无www.是根据wordpress设置里面网站地址和博客地址决定的

2.在此之前可能要处理过永久链接的去除index.php问题去除的办法是在根目录下404.php内写入以下代码(如果出现404错误)

<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

Windows主机下WordPress的tag解决办法

国内还是有很多的主机是用IIS+php+mysql搭建的,对于使用wordpress的用户来说,服务器是windows系统的话下一定遇到过以下2钟情况
1.永久链接中的问题,在链接中会有“index.php”,这个问题可以通过伪静态处理的方法来解决
2.tag中中文tag的链接转向404
昨天无意中发现第二个问题没有解决,现在提供解决办法供参考
首先我尝试了修改rewrite.php,此法如下:

打开wp-includes下rewrite.php
function get_tag_permastruct() {
if (isset($this->tag_structure)) {
return $this->tag_structure;
}

if (empty($this->permalink_structure)) {
$this->tag_structure = ”;
return false;
}

把黑体部分替换成if (! empty($this->permalink_structure)) {

此法确实能够解决连接问题,但是修改后tag的链接格式会变成系统默认的/?tag=%tag%/,经过摸索修改下面一行可能能解决格式问题,但是经过尝试,失败。欢迎高手赐教。

于是找了第二种解决方案:修改classes.php

打开wp-includes下classes.php

找到45行(2.7版本中为152行)开始

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");

通过这种方法修改能保持原来的永久链接方式,效果不错

注意:代码可能会因编码问题复制出错,建议使用英文输入对照黑体部分手动修改;改rewrite.php过程中不要修改永久链接中相关设置,不然会出现所有tag的链接都转向404页

OK,enjoy it!

Ubuntu下播放RMVB视频

网络上关于这个的帖子和文章很多但是比较乱,我这里提供一种比较简单的办法

还是使用ubuntu自带的播放器totem,其实预装的播放器是Totem-gstreamer

1.卸载Totem-gstreamer

sudo apt-get remove totem-gstreamer

2.安装Totem-xine

sudo apt-get install totem-xine

3.安装解码包w32codecs

sudo apt-get install w32codecs

如果找不到w32codecs可以在以下这个页面下载deb包

http://www.debian-multimedia.org/pool/main/w/w32codecs/

此方案对8.04、8.10及9.04均有效

支持截屏的LinuxQQ Preview3

腾讯发布了 QQ for Linux 1.0 Preview 3,从这个版本开始支持好友之间互相发送文件,支持在群里截屏而在群里发送等等。在很大程度上提高了 QQ for Linux 的用户体验,同时也看到了腾讯要把 QQ for Linux 的功能做得更加完善的决心,并兑现其发布的 QQ for Linux 产品后续计划的承诺。对于长时间没有更新的eva,此版本的LinuxQQ很受Linux用户的欢迎。

下载:http://im.qq.com/qq/linux/

QQ for Linux 1.0 Preview 3 主要变化:
* 支持和好友传送文件
* 支持和好友/群发送图片
* 支持群里截屏并传送截图
* 优化代码运行效率,降低系统开销

QQ for Linux 1.0 Preview 3 的截图
版本号

在群里支持截屏并发送

支持用户之间相互发送文件