存档

文章标签 ‘rewrite’

不再使用404方法实现Rewrite(使用WordPress URL Rewrite )

2009年11月21日 渴慕晨光 5 条评论

用的服务器是iis的,幸好是有些关系,可以修改服务器的配置,不然还真只能用404方法来实现Rewrite了。404的缺陷目前来说就是搜索结果页分页错误,详见http://www.asgone.net/wordpress-search-result-pagenavi-error/。

先在网上了找了其他实现wordpress的方法,除了404方法,还有一个就是使用ISAPI_Rewrite,可惜ISAPI_Rewrite的规则好像较少: 阅读全文...

分类: wordpress 标签: , ,

IIS下wordpress使用404页面实现rewrite完美方案

2009年5月30日 渴慕晨光 18 条评论

IIS下不用rewrite,使用404页面实现wordpress伪静态这种方法在网上广为流传,我从sablog转到wordpress,用了朋友的服务器,也只能用这种方法。用iis rewrite怕干扰其他网站。

不过我之前介绍过这种方有个大问题,就是不支持中文。

在网上查一些资料,才明白原因。原来带有中文的postname和tag的url其实是属于gbk编码,但是wordpress是utf-8编码。所以在404页面中要把网址转码称utf-8,这样就能完美解决404页面实现rewrite的不支持中文问题。 阅读全文...

分类: wordpress 标签: , , ,

IIS下wordpress永久链接(PermaLink)不用rewrite使用404页面实现

2009年5月30日 渴慕晨光 没有评论

如果是在Linux主机下,主机支持mod_rewrite的话,那就不需要费那么大的劲,但是一部分WordPress是安装在Windows主机上的,要想使伪静态就有点麻烦。我在网上找了很多wordpress的rewrite规则,但是都不敢用。wordpress又不提供标准rewrite规则,真是麻烦。 阅读全文...

分类: wordpress 标签: , , ,

ISAPI Rewrite 3 Lite的问题与缺陷

2009年5月27日 渴慕晨光 4 条评论

在上一篇《在IIS下安装配置ISAPI Rewrite 3,实现rewrite》中介绍了ISAPI Rewrite 3 Lite的简单使用, ISAPI Rewrite 3 Lite只能配置全局httpd.conf,不能对每个站点做单独配置,可以免费使用。

但是经过实验发现了ISAPI Rewrite 3 Lite的一些问题与缺陷,主要针对的是用原msi安装文件安装的。

缺陷:这也许就是免费版的限制吧。只要全局配置文件httpd.conf里面有正确的rewrite rule,就能生效。这就造成了不想使用rewrite的站点也要受到httpd.conf的影响。
 

问题:不管有没有在站点的ISAPI筛选器上添加ISAPI_Rewrite.dll这个筛选器,它都是起作用的。这个问题就有可能造成严重后果。

比如:同时有两个虚拟主机,安装了discuz论坛和supesite社区,这是配置ISAPI Rewrite 3就使它们的rewrite规则有冲突。

如果这时只配置supesite社区的rewrite规则,而discuz论坛不启用伪静态,就会出现一种奇怪的现象:discuz论坛点击帖子自动回到首页。

分类: 服务器 标签: , ,

在IIS下安装配置ISAPI Rewrite 3,实现rewrite

2009年5月27日 渴慕晨光 没有评论

首先去http://www.helicontech.com/download-isapi_rewrite3.htm下载最新版本的ISAPI Rewrite 3 ,有商业完整版和免费Lite版两种。
完整版的支持每个站点根目录自定义httpd.ini文件,可以免费试用45天。Lite版的只能配置全局httpd.conf,不能对每个站点做单独配置,可以免费使用。在这里我使用Lite版(ISAPI_Rewrite 3 Lite installation package)。
下载后安装到任意位置,并确定安装目录有可读写权限,安装过程没什么好说的,疯狂的点Next就好。这里有一点要说明的是,用安装程序会提示关闭Internet信息服务(IIS),安装之后就自动启动了。

比如我安装的位置是D:Program filesHeliconISAPI_Rewrite3,可以给Helicon加上everyone的读取权限,这样应该就不会遇到权限问题了。

安装完成进行配置的步骤,打开 Internet信息服务(IIS)管理器 ,在需要URL Rewrite的站点上点击右键->属性->ISAPI筛选器->添加,筛选器名称任意填,我填写的是ISAPI Rewrite,可执行文件浏览选择ISAPI Rewrite 3安装目录下的ISAPI_Rewrite.dll文件。

最后一步是要编辑ISAPI Rewrite安装目录下的httpd.conf文件,在开始菜单中也可以通过运行ISAPI_Rewrite Manager来编辑它。

举个例子,要把 domain.com/view.php?id=test 重写为 domain.com/view-test.html
可以这样写:

  1. RewriteRule /view-([0-9,a-z]*).html /view.php?id=$1 [L]

 

分类: 服务器 标签: , ,

从sablog1.6升级成sablog2.0之后的rewrite问题之修正版htaccess文件

2008年8月11日 渴慕晨光 4 条评论

解决从sablog1.6升级成sablog2.0之后的rewrite问题。

sablog1.6升级成sablog2.0之后,2.0有新的网址命名规则,rewrite规则也跟着不同了。那么原来的1.6的伪静态rewrite规则怎么在2.0里面起作用呢?

如果不起作用,原来在百度,google里面收录的内容就会出现问题,当有人从搜索引擎点击原来1.6版本网址的话,转到现在的网站却会提示找不到记录,见下图:

err.gif</p>
<p>大小: 2.25 K<br />
尺寸: 400 x 280<br />
浏览: 1 次<br />
点击打开新窗口浏览全图

这样,当点击原来的1.6版本网址,http状态码返回的是200 成功,但是所有的网址的内容都是一样的,而且是“记录不存在。。。”,从seo方面,对博客来说:后果很严重。

解决方法:

经过研究,只要修改.htaccess文件就可以添加原来1.6版本的rewrite规则,让搜索引擎里面的sablog1.6版本的url不失去作用。

如:原来1.6版本的一个url是http://www.bt153.cn/show-358-1.htm 升级成sablog2.0之后的url是http://www.bt153.cn/archives/358/

通过修改.htaccess文件就可以添加原来1.6版本的rewrite规则,可以让用户访问http://www.bt153.cn/show-358-1.htm的时候自动转到http://www.bt153.cn/archives/358/,而且本解决方法利用的是301重定向,因为301重定向是Search Engine Friendly Redirect。

rewrite规则生效之后,可以到http://www.internetofficer.com/seo-tool/redirect-check/,检查url是不是301重定向。

本人使用的.htaccess文件下载: htaccess.rar
解压密码:本站域名www.bt153.cn

分类: web编程 标签: , , ,

从sablog1.6升级成sablog2.0之后的rewrite问题

2008年8月3日 渴慕晨光 1 条评论

从sablog1.6升级成sablog2.0之后,2.0有新的网址命名规则,rewrite规则也跟着不同了。那么原来的1.6的伪静态rewrite规则怎么在2.0里面起作用呢?

如果不起作用,原来在百度,google里面收录的内容就会出现问题,当有人从搜索引擎点击原来1.6版本网址的话,转到现在的网站却会提示找不到记录,见下图:
err.gif

这样,当点击原来的1.6版本网址,http状态码返回的是200 成功,但是所有的网址的内容都是一样的,而且是“记录不存在。。。”,从seo方面,对博客来说:后果很严重。

为什么URL这么重要呢?

因为所有的搜索引擎内保留了很多你原来的数据,而蜘蛛也会时常去这些老的URL转转,一旦发现没有这个数据,蜘蛛就会从数据库里把原来的链接删除。如果蜘蛛认为原来的url都不存在了,搜索引擎把以前的数据全部删除,这样一下子少了很多数据,排名也就一下子掉很多。而且会对新的网址的收录有影响,也会影响在搜索引擎里面的排名。

最好的解决方法就是把原来搜索引擎里面的1.6版本的网址301转向到现在新的2.0的版本网址,这就要修改.htaccess文件,重新添加新的rewrite规则。

love目前正在修改中……

分类: 网络营销 标签: , ,

泛域名与apache的rewrite的变异结果

2007年10月24日 渴慕晨光 2 条评论

自从接触域名以来,就想了解泛域名的用处.特别是用泛域名来做无限的二级域名,不过找了一些资料,一直没有结果.

最多也就起到了泛域名的效果,*.viatop.cn(*,通配符,可是任意)都指向了viatop.cn。不过我想的结果做成二级域名,比如:

blog.viatop.cn 就是指向www.viatop.cn下面的blog文件夹,即:www.viatop.cn/blog

g.viatop.cn 就是指向www.viatop.cn下面的g文件夹,即:www.viatop.cn/g

结果一直没有实现啊,网上大多说的是利用apache的rewrite,可是一直没有成功.

不过今天又找了段代码,改写如下:

PHP代码
  1. RewriteEngine on
  2.  
  3. RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.viatop\.cn$
  4. RewriteRule ^/(.*)$ /%{SERVER_NAME}/$1
  5. RewriteRule ^blog.viatop.cn/(*)$ /blog/$1 [L]

于是就成就了我所说的变态结果,不过不知道是不是rewrite后的正确结果.

反正现在的情况是访问http://blog.viatop.cn不是一般泛域名解析viatop.cn了,而是显示www.viatop.cn/blog的效果. 也就是说我本来配置的博客是www.viatop.cn/blog但是现在用blog.viatop.cn也可以访问www.viatop.cn/blog里面的内容,但是打开blog.viatop.cn之后的里面的所有链接和图片仍然显示是www.viatop.cn/blog下的,这就比较奇怪了.

点了blog.viatop.cn里面的链接,地址栏里面的网址blog.viatop.cn不会变,变得只是网页里面的内容,就好像网页使用了框架一样的效果.

真不明白啊.

分类: 服务器 标签: , ,