存档

文章标签 ‘WordPress’

WordPress无Rewrite用cos-html-cache实现静态化

2008年10月16日 没有评论 238 views

WordPress是一个非常不错的博客程序(不然本人页不用啊~),但是有一个缺点~插件安装多了就显示的很慢,但是还有很多插件不得不装,比如本人是个程序员,在网站上发布自己的心得,前几天写了域名批量查询工具by苗启源:http://miaoqiyuan.cn/p/yuming-query/,想要吧代码高亮的形式显示,安装了WP-Syntax:http://wordpress.org/extend/plugins/wp-syntax/,这样每次有用户请求页面就很变的很慢,甚至导致用户不能正常访问。这时候实现程序的静态化是一个不错的选择~

在网上狂搜一番,口碑最好的是cos-html-cache(http://wordpress.org/extend/plugins/cos-html-cache/),其最新版本为2.5,需要服务器支持Rewrite才能实现,但是国内虚拟主机基本上都是Window主机IIS平台,很少有支持Rewrite(IIS需要ISAPI Rewrite支持),难道国内的WrodPress只能用Liunx虚拟主机才能实现吗?我们Windows主机就没有静态化的权利?

经过笔者一番测试,终于实现了用WordPress不使用Rewrite实现静态化的方法(http://miaoqiyuan.cn/p/wordpress-plus-chc)

1.下载cos-html-cache 1.1(http://downloads.wordpress.org/plugin/cos-html-cache.1.1.zip),解压,传到/wp-content/plugins/目录,在后台”插件”中启用”cos-html-cache”

2.在”设置”永久选项中,自定义结构修改静态化的规则,本站为/p/%postname%/

3.在”设置”-”CosHtmlCache” 生成静态。看到这里,可能有的读者会说这和网上的很多文章一样,不就是网上的文章Copy了一份吗?这样是实现了内容页的静态化,点分类的时候就开始提示出错了~因为CosHtmlCache1.1只支持文章页首页的静态化,没有这个页面自然不能访问咯。解决方法嘛,请往下看:

4.现在虚拟主机都支持404页面自定义,所以~~聪明的你想到了吧?如果访问已经生成的静态页,自然能正常访问,不能生成的呢?提交参数给index.php,这样就实现了服务器不支持Rewrite实现静态化的目的了,下面是功能实现的代码:

我的空间支持404.asp,所以先发个404.asp的代码

< %
'ASP_Rewrite with 404 By MiaoQiyuan
 
'定义WordPress的处理页面,也可以是"/?"
PHP_Resource="/index.php/"
 
'获取服务器地址,这样可以实现多域名访问
Hst_Svr=Request.Servervariables("HTTP_HOST")
'获取服务器端口,防止
Hst_Pot=Request.Servervariables("SERVER_PORT")
'构造网址
Hst=Hst_Svr&":"&Hst_Pot
'构成404错误提交给404.asp的请求,因为服务器不一样,大家可以自己根据自己的虚拟主机测试一下
Err_404="404;http://"&Hst&"/"
Res_Get=Request.QueryString
'用真实404.asp的请求的错误信息(包括错误的请求地址)替换掉构成404错误,就剩下了请求的相对地址
Fnk_Get=Replace(Res_Get,Err_404,"")
 
'如果不为空,吧Fnk_Get提交给定义WordPress的处理页面
If Request.QueryString<>"" then
  Response.Redirect PHP_Resource&Fnk_Get
Else
  Response.Redirect PHP_Resource&"404.php"
End if
%>

下面说一下普通404.htm实现上述功能,因为html不能直接获取端口域名,所以我们用JS调用的方法,404.htm页面的代码只有一行

<script src="404_js.asp" type="text/javascript"><!--mce:0--></script>

404_js.asp的代码如下:

< %
<%
'ASP_Rewrite with 404,Javascript By MiaoQiyuan
 
'定义WordPress的处理页面,也可以是"/?"
PHP_Resource="/index.php/"
 
'获取服务器地址,这样可以实现多域名访问
Hst_Svr=Request.Servervariables("HTTP_HOST")
'获取服务器端口,防止
Hst_Pot=Request.Servervariables("SERVER_PORT")
'构造网址
Hst=Hst_Svr&":"&Hst_Pot
'构成404错误提交给404.asp的请求
Err_404="404;http://"&Hst&"/"
%>
<!--
var _Err;
if(location.search){
  _Err=location.search.replace("?<%=Err_404%>","");
}
else{
  _Err=location.href.replace("http://< %=Hst%>/","");
  _Err=location.href.replace("http://< %=Hst_Svr%>/","");
}
 
location.href="< %=PHP_Resource%>"+_Err;
-->

为什么不是用CosHtmlCache2.5?
因为CosHtmlCache2.0以上的版本都是根据Rewrite第一次访问自动生成,比如这篇文章,/p/wordpress-plus-chc,第一次访问,因为没有页面跳到/index.php/p/wordpress-plus-chc,这样文件路径就是/index.php/p/wordpress-plus-chc,而不是/p/wordpress-plus-chc,所以导致不能生成,而CosHtmlCache1.1是在文章创建的时候根据设置中的路径生成。

如果服务器仅支持404.htm是否有生成的必要?
在不考虑搜索引擎收录的情况下,可以使用,如果想要搜索引擎较好的收录,建议不要使用。404.htm只能通过JavaScript在浏览器中识别,而在搜索引擎中只能看到,如果支持404.asp就能较好的收录

分类: 技术文章 标签:

网站永久链接与WordPress的自定义链接结构

2008年10月11日 2 条评论 88 views

单纯把博客当作日记本的人一般是不会再去在意自己的博客中文章的链接地址是怎么样的的,因为他们不要求自己的博客一定要被很多的人看,也不为了提高 自己的博客访问量从中得到什么。但有些博客作者包括我在内,或者希望自己的博客能让更多的人访问,或者想从中获取某些利益,这时,我们就应该好好的考虑一 下子博客的永久链接结构了(当然不仅仅只局限于博客,几乎任何一个网站都应该好好的考虑自己的链接结构了)。

我们先来看看一个链接是用来做什么的:

  • 直接在浏览器的地址栏中输入链接,将访问此链接对应的网页
  • 通过文字、图片等链接从一个网页跳转到另一个网页或者打开新网页
  • 搜索引擎抓取一个页面并通过链接抓取另一个页面
  • 为保存网页,用户保存该网页的链接地址
  • 他人通过链接地址将读者导向到引用文字源出处
  • …….

一个链接的作用并不是本文能够说得清楚的,即然一个链接有这么重要,那么我们就应该很仔细的对待它了。

首先我们看看系统默认的链接:“http://www.cmshacker.com/?p=30″,在这个链接里有一个参数p, 它的值是30(准确的说应该是数据库中ID为30的文章),这个链接有什么不好处呢?大家可以去网上搜索一下子,一般讨论都认为这样的链接对搜索引擎不友 好,也就是说搜索引擎不是很容易抓取这样地址的网页,这意味着你将会因为搜索引擎不能及时的抓取你的网页而使用一些用户。

所以,一般情况下,除非必需,我们都应该把我们的网页的链接结构设置为非动态的,即静态网址, 如:“http://www.cmshacker.com/node/30”,大家可以能过这两个网址访问同样的一个网页,对于我们人来说,没有什么不一 样的,可是对于搜索引擎来说就有点儿不一样了,这个链接只有一个参数,影响可能很小,但是要是很多参数在一个链接里的时候,那可能影响就很大了。

我们即然要将自己网页的链接都设置为静态链接,那到底应该怎么样设置呢?

现在一般的CMS、Fourm等系统都已经提供了网址重写功能,只要服务器支持,我们已经不需要去了解如果实现,只需要要设置链接结构就行了。下面到了本文想要说明的重点了,如果自定义一个优良的链接结构。

一个好的链接结构一定要易记,即使是访问者不能收藏你的链接地址的时候,也能让访问者很容易就记住你的链接。所以,一个好的链接一定要简洁,本博客 使用的是系统,设置成为“/node/%post_id%”这样的结构,不一定是最好的,但是一定简洁,而且本博客设置为这样的结构并 不仅仅只是考虑到简洁,因为作为一个正在发展中的博客,我有信心把它写好,而且考虑自身因素,有可能在以后的某个时间会换为Drupal系统,而 Drupal系统的默认链接结构就是“/node/%node_id%/”,也就是你在浏览器地址栏中看到的“http: //www.cmshacker.com/node/30”这样的结构,如果我换了系统,仍然可以保证被搜索引擎记录的以及读者保存的链接可用,这样也减 小了更换系统的成本(当然,使用别的结构,也可以在换成别的系统后将新系统的链接结构也设置为原系统的结构一样,但本人是一个喜欢简单的人,所以不想多做 别的事情)。

如果不设置为这种“/node/%post_id%“式的结构,想设置为其它的结构,也行,但是我想说的是下面一些必须要注意到:

  1. 不要在链接结构中使用文章容易变更的属性或者具有多个值的属性,如我使用的系统中,文章的这些属性有:分类名称 (Category)、标签(Tags)等。原因主要是考虑到如果你使用了这些属性,那么当你在更换文章的这些属性之后,它的链接也就改变,那么以前到这 些文章的链接都将失效。
  2. 不要使用可能引起系统识别错误的元素在永远链接结构中,你不可能把自己的WP博客的链接设置为“/wp-admin/$post_name% /”,如果真的这样了,那要是哪篇文章的缩略名是“post.php”,那你叫系统是让读者查看你的文章呢?还是把读者带到后台的文章发布页面呢?系统很 聪明,当他不知道怎么选择的时候,它就不选择,所以文章发布页面和那一篇有特殊缩略名的文章都将不能文章了。这只是一个很傻的例子,但足以证明我的观点。
  3. 尽可能让博客或者网站中某一类内容的链接结构中有同一个元素,比如系统中,你可以设置你的日志地址为:”/archives /%post_name%/”,可以设置你的分类访问地址为”/cat/%category%/”等,这样,就算两个不同类型的内容的缩略名一样,也不会 造成一个链接地址对应两个内容节点的情况的出现。
  4. 链接尽量简洁,我不赞同一些博客托管商提供的默认链接结构如“/archives/%year%/%month%/%day% /%post_name%/”,我现在还是搞不懂一篇文章要年月日干什么?除了可以让读者一眼看出这篇文章是哪天发布的之外,没有任何的其它作用,一般情 况下也很少出现一天写N篇日志的博客,就算有的博客一天写上十篇二十篇上百篇,那又怎样?一般的读者不会想到从你的文章链接中去看发布日期的,他们只会觉 得这个网址好难记啊,还得记年月日,如果不同意我的观点,大可以把“http://www.cmshacker.com/archives/2008 /08/08/hello_world.html”这个链接和“http://www.cmshacker.com/archives /hello_world.html”对比一下子,看哪一个好记,我用的是20080808肯定好记,但是要是不是这样的年月日呢?
  5. 如果和我一样,喜欢换系统,那最好是把链接结构设置成一个有可以成为你下一个使用的系统所最容易实现的结构,比如本博客使用的链接结构就是Drupal最容易实现的,而Drupal也是最有可能成为我下一个系统的。
  6. 最好使用树形结构作为网站的链接结构,不要所有内容都通过“http://www.cmshackher.com/page_name.html”这样的形式访问,最好是将内容进行分类,再让相应分类下的内容通过更深一层的网址访问,如果上面第3所说的结构。
  7. 自己再认真想想还有什么没有考虑进来的,留言告诉我,或者不用分享,自己知道就行。

上面说了这么多,还有一点也是大家应该注意的,如果你使用的建站程序建站,那么在站内进行文章的内链时,最好是使用系统生成的链接结构,而且最好是相对链接而不要使用绝对链接,这样的话,就算换域名,你的内链接都会是有效的。

中的自定义永久链接结构 ng>

如果你的主机支持mod_rewrite(一般都为Linux/Unix+Apahce主机),那么你就可以使用的这项功能,他不仅仅只是给你的文章加上一个好看的链接而已,还可以提高搜索引擎的友好度,自己看了读者看了链接也都舒心。

点击“Settings”>>“Permalink”(http://YourDomain/wp-admin/options-permalink.php也可访问)即可进入永久链接结构的设置。

上图为链接结构的一般设置(Common Setting)区域,对它进行设置,将改变你的日志访问地址的结构,第一项为系统默认的链接形式,即带参数的动态链接地址,这种地址是对搜索引擎包括人 都不友好的链接,如果你的主机支持Mod_rewrite,那最好不要使用这种链接。

后面几项设置是系统为你准备好了的永久链接结构以供你选择和参考,结构分别为:

/%year%/%monthnum%/%day%/%postname%/

/%year%/%monthnum%/%postname%/

从这几个结构我们可以看出,使用一个由“%”号包裹的参数来定义日志的某个属性,最后生成一个固定永久链接,所以,永久链接结构 的设定也就转变成这些参数的选择了。如果你不想自己花费太多时间在这上面,那么你只需要选择一个系统为你准备好的结构再点确定就行了,但是如果你想获更个 性的永久链接结构,那么继续往下看。

选择最后一项自定义结构( Custom Structure),选择这项你将拥有更多的自主权,系统默认为你填上了“/archives/%post_id%”这个参数,也就是说你的日志地址将 是“http://YourDomain/archives/日志在数据库中的ID”,这里的archives是一个静态的参数,也就是说,任何一篇日志 都有的,而且位置也都是你的主机地址之后,日志ID之前由“/”号分开的地方。你也可以将其修改为其它的词语,比如”/post/%post_id/%” 或者”/html/%post_id%/”等等。

如果我不想使用这个设置,我想让我的日志链接地址成这样的:“http://YourDomain/blog/2008/04/hello- world.html”,我又应该怎么办呢?分析这个结构可以得到这个结构应该为”http://YourDomain/blog/%year% /%monthnum%/%post_name%.html”简单吧,只需要把参数与URL链接地址中允许的符号进行一些组合就可以了。

如果你的博客是几个一起写的话,要使URL地址能体现出作者信息,你还可以这样“http://YourDomain/%author%/%post_name%.html”。要想得到更多的自定义参数,请参照下面的参数对应表:

%year%

日志发布年份,一个四位的数字,如2008

%monthnum%

日志发布的月份,两位数字,如08

%day%

日志发布的日期,两位数字,如28

%hour%

日志发布的时间(小时)两位数字,如 15

%minute%

日志发布的分钟数,两位数字,如43

%second%

日志发布的秒数,两位数字,如54

%postname%

这个为你的日志的缩略名,在WP 2.5以后的版本中,如果你在永久链接中使用了这个参数,那你在写日志是,就会在日志标题栏下方出面日志缩略名编辑选项,比如你可以编辑一篇名为“我爱你 中国”的日志的缩略名为“I-Love-You-China”,这样的话,在日志地址中就不会出现“乱码”,因为中文字符在URL中是不能出现的,你可以 只输入“I Love You China”系统会自动为你加上“-”号。而如果在永久链接结构中没有出现这个参数,那么你在日志输入页面将看不到这个参数的设置选项。

%post_id%

日志唯一的ID号,如1、34、231等

%category%

日志的分类目录名,在设置分类时,分类可以设置一个别为用以链接地址的使用,比如“中文歌曲”可以使用别为 “Chinese Songs”,这样也是起到上面%post_name%设置时相同的效果,不过我建议最好不要在日志链接中使用分类名,因为这样如果你的一篇日志在发布使 用一个分类,而过了一段时间后,又改为另一个分类,那么你的日志的访问地址也将改变,也就是说所有链接到你这篇日志的链接都将变为无效。

%author%

作者名,如“pantao”

建议使用/archives/%post_id%、/article/%post_id%、/html/%year%/%monthnum%/%postname%.html等等这样的设置

分类: 影音娱乐 标签:

安装WordPress后要做的10件事情

2008年10月11日 没有评论 58 views

因为有著名的5分钟安装,所以安装WordPress应该很简单,当然这只是一个开始,要使博客完美并有友好的界面,还有许多工作有待完成。这样一来,你应该在安装WordPress后还要做以下10件事情:
1. 启用反垃圾插件。在Wordpress.com 注册并获取 API Key ,从而启动了反垃圾插件:Akismet ,这个插件是Wordpress默认插件。
2. 自定义永久链接结构。自定义永久链接结构可以更方便用户和搜索引擎访问你的博客文章。 小狐建议可以自定义为如下设置:/%postname%/ ,这样会比较的简洁       (如下图)

3. 有自己的独立域名。注册自己的域名并在常规设置中设置WordPress 地址 (URL),使你与其他的Blogger区别开来。

4. 建立cache。 建立cache可以是你的博客占用较少的资源而得到更快的速度,您可以在您的博客安装一个cache插件。有以下三种插件可以选择:
WP-Cache
1BlogCacher
SuperCache
我个人使用1blogcacher 。(不过WP-Cache有中文版,还是推荐这个)
5. 创建一个网站sitemap。Google (XML) Sitemaps Generator.顾名思义,Sitemap是指网站地图,可以帮助搜索引擎更好更快的收录您网站的内容,有了这个插件,就可以方便的帮你创建Sitemap,并帮你提交到各大搜索引擎中去。
6. 把你的博客feed在Feedburner托管。把你的博客feed在Feedburner托管可以使你更方便的统计你博客的订阅数,在feed中发布广告,等等。通过Feed Smith 这个插件是你站点的Feed转向到您在Feedburner烧制的Feed。(如果是在国内的话,小狐建议你还是使用飞递FeedSky比较好,起码不用担心被墙…)

7. 添加您的跟踪统计代码。您是否使用Google Analytics ,或其他统计系统(小狐推荐使用雅虎统计),可以使你更好的统计你网站上的访客,当然重要的是一定要把跟踪统计代码放在</body>之前,您通常可以在footer.php找到。

8. 创建一个robots.txt文件。可以防止您的博客内容不会被搜索引擎视为只有重复出现的那几页(例如,博客的分类和标记等)。首先创建一个文件robots.txt,或者您可以通过Google网站管理员工具 来帮你创建这个文件,随后上传到您的博客根目录下。
9. 把您的网站添加到Google网站管理员工具 。Google网站管理员工具 让你博客的Sitemap更为快速的被Google搜索引擎收录,并通知有关您博客的统计信息和错误 。它使用起来是非常直观和简单的,您也可以到http://www.google.com/support/webmasters/?hl=zh-CN 来帮助你使用Google网站管理员工具 。
10. 设置主题。寻找一个您喜欢的主题,下载并安装它。 当然为了方便访客访问,该主题最好包含了以下要素:有搜索框、一个Feed图标、导航菜单,这是为了易于阅读。

以上步骤结束后,你就有一个自己的平台,可以正确表达你自己的想法,与你的访客交流。可能您还会需要其他设置,插件或主题,但我认为,这是10件事情是最重要的,最后祝您Blogging愉快!

分类: 影音娱乐 标签: