您好,UncleToo欢迎您!  为了更好的浏览本站,请使用高版本浏览器
RSS  Tag     设为首页 | 加入收藏
 您所在的位置:首页 > 开源项目

wordpress在IIS下伪静态后子目录无法访问的解决办法

作者:  来源:互联网  日期:2013-11-06 23:21:04
收藏  评论:( 0 )  阅读:672

众所周知,wordpress是基于php开发,在apache服务下运行是最优秀的。但是,国内仍然有很多主机上不能提供apache服务器,大多都是IIS环境。因此,导致wp在IIS环境下,出现很多问题,解决起来也比较麻烦。UncleToo也不小心使用了IIS。因此,在遇到的关于IIS环境造成的一系列问题,记录下来,帮助有同样痛苦的站长共同分享。

本篇主要是关于IIS伪静态成功后造成的子目录和其他一些根目录的文件不能正常访问的问题。

近几日想给网站加上一些别的页面,自然要用到子目录。没想到访问所有非WP-开头的子目录内容都转到404页面去了。看样子WP还真有的高深莫测,令我丈二和尚摸不着头脑啊,后找了不少资料才基本解决此问题,方法是修改伪静态规则文件httpd.ini:

下载或者在线编辑httpd.ini文件,在原来规则中增加一条代码RewriteRule /tool/(.*) /tool/$1 [L],增加后完整规则如下(/tool/是二级目录名,具体名称是什么就写什么,注意是双斜杠):

编辑httpd.ini规则:

[ISAPI_Rewrite] 
# Defend your computer from some worm attacks 
#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O] 
# 3600 = 1 hour 
CacheClockRate 3600 
RepeatLimit 32 
# Protect httpd.ini and httpd.parse.errors files 
# from accessing through HTTP 
# Rules to ensure that normal content gets through 
RewriteRule /favicon.ico /favicon.ico [L] 
RewriteRule /sitemap.xml /sitemap.xml [L] 
RewriteRule /sitemap_baidu.xml /sitemap_baidu.xml [L] 
RewriteRule /sitemap.html /sitemap.html [L] 
# For file-based wordpress content (i.e. theme), admin, etc. 
RewriteRule /wp-(.*) /wp-$1 [L] 
# For normal wordpress content, via index.php 
RewriteRule ^/$ /index.php [L] 
RewriteRule /(.*) /index.php/$1 [L]

上面的内容是配置伪静态,以下是设置子目录访问配置代码

如果需要某个子目录(比如网站需要增加pr子目录),则在# Rules to ensure that normal content gets through行下增加如下内容:

RewriteRule /pr/(.*) /pr/$1 [L]

如果有多个子目录的话,也是可以的,设置几条这样的规则就行了。如:

RewriteRule /文件夹名1/(.*) /文件夹名1/$1 [L] 
RewriteRule /文件夹名2/(.*) /文件夹名2/$1 [L] 
RewriteRule /文件夹名3/(.*) /文件夹名3/$1 [L]

就这样,基本上可以解决此问题。或许还有更好的方法,继续摸索中……也欢迎大家共享。
如果是想访问根目录下的其他文件,比如验证文件html。则参考

RewriteRule /sitemap.xml /sitemap.xml [L]

只需将相应名称换成要访问的即可。



除非特别声明,本站所有PHP教程及其他教程/文章均为原创、翻译或网友投稿,版权均归UncleToo中文网所有, 转载请注明作者及出处。
原文网址:http://www.uncletoo.com/html/openobj/587.html
读完这篇文章后,你是否有所收获? 分享是一种生活的信念!
  • 0
  • 0
我来说两句
更多>>网友评论