亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net
您需要 登录 才可以下载或查看,没有账号?立即注册
x
需求:要在安装了wordpress的站点实现伪静态功能,服务器环境是Win2003+IIS6
在Win主机下,Wordpress后台的Permalink都给加上了难看的index.php前缀,比如原本应该是
http://www.***.com/contact/ 页面变成了
http://www.***.com/index.php/contact/ 这样的URL
这不单使网站的URL变得难看,更影响了seo,是难以容忍的。于是打算动手去掉这个前缀
这个问题折磨了我整整一天,网上搜了N种方法,踩了N个坑,总算解决。有必要整理一下过程。 网上搜到的所有方法,大致就这两种思路
1. 采用ISAPI_Rewirte服务配合httpd.ini文件
这是我首先考虑的方法,原因是httpd.ini文件只是一个文本,可以随意修改策略,看起来比较容易,而且自由度也高。找到一篇感觉不错的教程(http://www.jannn.com/974.html),于是开始实行。
首先下载了别人写好的针对Wordpress常用的httpd.ini,放到网站根目录下;然后远程登录服务器,安装了ISAPI_Rewirte服务,在站点的ISAPI筛选器里添加了Rewrite3这个筛选器,重启了IIS服务,一切看似都很顺利。
接下来在Wordpress后台设置好伪静态,我习惯设置成这样: 然后满怀希望的打开网站,点击发布的文章,浏览器还是给出了404页面…
反复读教程,感觉没有漏掉哪一步啊!只能继续百度+谷歌…
看了N个网页,感觉最有可能问题出在权限上,Rewrite的服务对我的httpd.ini没有读取权限?
httpd.ini需要IIS_WPG用户组的访问权限,于是再次远程登录服务器,准备添加IIS_WPG。结果发现我的服务器上根本没有这个用户… 原来我使用的Rewrite服务是个试用版,只能把httpd.ini文件的内容复制到组件的安装目录下的httpd.conf文件内,并且开启everyone的读取权限,然后重启IIS才有效。 2014年4月24日再次踩坑:
必须在IIS的网站全局的ISAPI筛选器中删除Rewrite,单独为每个需要实现伪静态的网站添加这个筛选器,否则会影响到服务器上所有网站的URL。 2. 用404实现伪静态
这个方法是我的第二选择,是第一种方法失败N次中尝试的。
我担心通过404页面做跳转,会影响页面的SEO效果,因为搜索引擎对于404是不做收录的。用这个站长工具- http://tool.chinaz.com/pagestatus/
可以检验效果。不过不管返回的是404还是200,如果能跳转成功,我不妨先试一下,然后再考虑SEO问题。
于是认真跟着教程做了一遍。结果还是不能跳转成功。
但发现如果我用静态html文件做404,是可以看得到的,一旦换成php就不行了。冷静下来再想想,再百度一下… 在无数篇排错的文章中我终于找到了答案。原来在IIS站点定义404属性的时候,必须用URL方式。如果用文件位置定义,静态的html可以,但脚本如php就不行了,正确的定义应该是针对站点根目录的URL,这样脚本就能正确执行,如图: 这个定义完成后,Wordpress站点伪静态跳转也成功了!用站长工具测试下,所有存在页面的跳转都显示200,不存在的页面都是404,一切正常,松了一口气。
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |