WordPress+WP-SuperCache之中文tag的Permalink问题全解析

Linux, PHP, 技术心得 3 Comments »

  WordPress的中文支持有问题,特别是在使用Permalink的时候,这个大家都知道。本文将分析其中的原因和网上流传的多种解决方案,并给出一个具体的解决结论。
  这个问题主要表现为,在默认情况下,Wordpress对于形如这样的链接(链接1):
  

www.example.com/tag/中文

  不能正常访问,会产生404或500错误,或者其他的错误。
  而对于这样的链接(链接2):
  

www.example.com/?tag=中文

  WordPress就能够正确解析。

  原因:参见这篇文章和这篇文章,这是URL编码问题造成的。对于上面的链接1,这是一个PathInfo,对于链接2,这是一个QueryString。事实证明,对于UTF-8的页面,IE和FF都会正确发送PathInfo和QueryString(而不像有些文章中说的,他们在不同的设置下会有错误的反应),但服务器端,IIS会将PathInfo转换成GBK编码从而造成错误,于是Windows下的此类问题只需要转回来就行了;但是Linux下,Apache不支持中文PathInfo,要么通过这篇文章中的方法来对Apache进行改造,要么只能像我一样,Linux主机无法使用中文permalink。于是,我们只能寻找绕路的方法。
Read the rest of this entry »

巧用FTPRush删除Linux主机上的乱码文件

Linux, 技术心得 3 Comments »

  如你所知,折腾的人永远有折腾得的事情好做,比如我今天想要试试看IPower的解压功能,一不小心解了一个中文名的文件到了用户根目录,解压出文件权限是644,文件名是一堆乱码……用FTPRush删除无效,重命名无效,移动也无效;PhpSpy的文件管理功能删除、重命名、移动也全都无效。
  网上搜索Linux下删除乱码文件的方法,内容一大堆,但无一不需要使用Shell;唯一我可以使用的办法,就是用PhpSpy执行命令,用输入输出重定向来把ls输出的文件名直接导给rm命令;但是怎么试验都不成功,毕竟我只能执行一行命令,没法用vi(需要编辑ls生成的文件)。后来偶然看到有人说FTP可以删除,我试过了没用啊?难道有什么地方忽略了?
  我突然想到我的FTPRush是Unicode版的,而FTPRush的列表命令有一个编码的选择。打开工具-站点管理窗口-双击你的站点-目录列表方式-站点目录的字符集-选择WE/latin1(850)(大部分没有设置过locale的主机应该是这样),然后再登录FTP,发现乱码变了样子;删除之,一下子就成功了!
  结论:用FTP方式可以删除大部分乱码文件,除非有真正的系统不能接受的字符;但是删除的时候要确保你列出的文件名是正确的,这时候就需要把列表方式的编码设置正确。

部署Squid3.0的心得

Linux, 技术心得 1 Comment »

部署的是squid-3.0.PRE4.tar.gz,不加iptables,不使用任何外加插件
下面不是部署全过程,只是一点心得

一、configure的时候要注意参数

  • 如果要使用HTTPS,要加上–enable-ssl(我加了才发现用不到……)
  • 如果要在定义ACL的时候使用arp选项(即使用MAC地址来判定用户)需要加上–enable-arp-acl
  • 如果要允许解析的URL中出现下划线,要加上–enable-underscore,因为默认情况下Squid会认为带下划线的URL是非法的,并拒绝访问该地址。这个我没试过

二、ACL配置
如果不加载第三方工具,ACL配置是Squid中唯一的访问控制方法。这个东西的功能其实跟CCProxy的身份控制差不多(但是没有用户名密码认证功能),但是配置起来要更复杂也更强大。

    配置格式:acl aclname acltype string1
    常用的定义类型:

  • src ip-address/netmask
    src addr1-addr2/netmask
    用来源的IP地址定义,一个ip#即mask方式就是网络,cidr方式就是单个ip
  • acl aclname dst ip-address/netmask
    目标地址
  • acl aclname arp mac-address
    后悔编译的时候没加–enable-arp-acl参数,这个功能很有用的
  • acl aclname dstdomain .foo.com
    类似于CCProxy的访问限制,例如可以限制只能访问.cn的站点、不能访问.xxx的站点等等
  • acl aclname dstdom_regex [-i] xxx
    用正则,不过……谁这么无聊呢……
  • acl aclname http_status 200 301 500- 400-403
    根据HTTP Response返回值,这个很有效,比如规定302Moved就不访问
  • acl aclname port
    端口
  • acl aclname proto
    协议
  • acl aclname method
    方式,例如只能GET不能CONNECT
  • acl aclname browser [-i] regexp
    这个也太强了……限制浏览器用户代理标志类型

还可以规定mime类型、响应时间等等等等……绝对强大
Read the rest of this entry »

LilyStudio & WordPress & N.Design Studio
Entries RSS Comments RSS Log in