.htaccess的妙用

作者:乔夫  分类: 网事悠游  日期:2011-12-18  暂无评论,你来说两句呗?  

喜欢php就是因为方便简单,就像一些本来需要在服务器后台复杂设置的事情最后在.htaccess只用三两句代码就可以。虽然,我也一直说我不想再学什么语言或程序,甚至都不想再搞设计,但了解和记忆一些也是必须,所以这里收集一些常用的.htaccess代码方法以备忘记什么的不时之需。

1、301转向

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/$1" [R=301,L]

2、403禁止某目录执行权限

RewriteEngine on
RewriteCond % !^$
RewriteRule category/(.*).(php)$ – [F]

3、404错误文档

ErrorDocument 404 /404.html

4、自定义默认首页文件

DirectoryIndex filename.htm filename.html filename.php

Read more »

UTF-8里作乱的BOM标记

作者:乔夫  分类: 网事悠游  日期:2011-11-28  2 条评论  

有没有遇到过这样一种情况?php里include文件,无论怎样修改前台显示时在页面中调用内容的地方始终会多出一条缝隙或者空格,使得整个页面版式异常。通常我们会一个个地去排除html结构和css样式的原因,但这不是什么默认行距、字节占位的问题,即便css的hack如此之多,但这其实真不是由它造成的,所以最后只能是做无用功。

如果将include的内容直接复制到当前页中,或者将include文件编码由utf-8换回gb2312会惊奇地发现此时问题不复存在,由此便会自然联想到,曾经在.net里为了页面不乱码而在进行utf-8编码时必须包含的那个BOM头。于是去掉,才发现果然如此。原来php是不认这个BOM头的,所以才会把它当作字符像空格一样地给渲染了。

那么,什么是BOM呢?

BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是“FF FE”,变成UTF-8就成了“EF BB BF”。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8的编码。微软做这种检测,但有些软件或语言不做这种检测,而把它当作正常字符处理。也因为这是微软暗自所作的标记,所以.net里include文件时必须包含,不然就可能导致页面乱码。而到了php里include文件时,它就成了画蛇添足,一颗耗子屎搅了一锅汤。

解决的办法很简单,比如:

1、用UltraEdit-32打开文件,切换到十六进制编辑模式,察看文件开头是否含有“EF BB BF”;
2、用Dreamweaver打开,察看页面属性/编码,看“包括Unicode签名BOM”前面是否有被勾选;
3、用Windows的记事本打开,选择“另存为”,看文件的默认编码是UTF-8还是ANSI,如果是ANSI则不带BOM……

总之是,去掉这个BOM头即可。

如此勤奋地追风

作者:乔夫  分类: 网事悠游  日期:2008-3-4  2 条评论  

因为下一版追风岁月要采用wordpress程序,所以,这两天疯狂学习php。经常是通宵达旦。还好,收效不错,诚如人们所说,程序语言总是相通的。所以,新版theme,因为版式效果需要程序支持的,全部自己手写且业已完成,而相应插件也改动不少。感觉最拉风的是,之前从未写过一句php代码呵。而这次,不但写出来了,而且还按照科学的方法,没去动wordpress的源码,而是把追风的代码全写成了一个插件。也参考别人方法,把整站所有的css和js文件全部include进一个页面,以期减少页面载入时的链接请求,而且还对代码进行了压缩,体积大为改观,差不多减少一半。当然,这也是不得已而为之,因为过于注重版式,所以页面体积大得有点吓人,呵呵……

不过,不管怎么说,看来我的新年计划还是可行的嘛!想想,也有些搞笑。就一个theme而已,php,javascript,flash as什么都用到了,会不会是都把简单的问题复杂化了呢?思索ing……

的确有点疯狂!通宵之后,睡得太早,搞得四点多就起来了。此刻,凌晨六点,大多的人们还在沉睡,而我已经开始写第二篇博文了,够勤奋吧?哈哈……