解决wordpress在IIS下伪静态后子目录无法访问的问题
2013-11-04 10:58
405 查看
众所周知,wordpress是基于php开发,在apache服务下运行是最优秀的。但是,国内仍然有很多主机上不能提供apache服务器,大多都是IIS环境。因此,导致wp在IIS环境下,出现很多问题,解决起来也比较麻烦。优搜网也不小心使用了IIS。因此,在遇到的关于IIS环境造成的一系列问题,记录下来,帮助有同样痛苦的站长共同分享。
本篇主要是关于IIS伪静态成功后造成的子目录和其他一些根目录的文件不能正常访问的问题。
近几日想给博客加上一些别的页面,自然要用到子目录。没想到访问所有非WP-开头的子目录内容都转到404页面去了。看样子WP还真有的高深莫测,令我丈二和尚摸不着头脑啊,后找了不少资料才基本解决此问题,方法是修改伪静态规则文件httpd.ini:
下载或者在线编辑httpd.ini文件,在原来规则中增加一条代码RewriteRule /tool/(.*) /tool/$1 [L],增加后完整规则如下(/tool/是二级目录名,具体名称是什么就写什么,注意是双斜杠):
编辑httpd.ini规则:
上面的内容是配置伪静态,以下是设置子目录访问配置代码
如果需要某个子目录(比如UISEO优化网需要增加pr子目录),则在# Rules to ensure that normal content gets through行下增加如下内容:
如果有多个子目录的话,也是可以的,设置几条这样的规则就行了。如:
就这样,基本上可以解决此问题。或许还有更好的方法,继续摸索中……也欢迎大家共享。
如果是想访问根目录下的其他文件,比如验证文件html。则参考
只需将相应名称换成要访问的即可。
对于具体的语法,想更深入了解的,可以百度,也可以找本人。随时为大家无私奉献!
本篇主要是关于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]
上面的内容是配置伪静态,以下是设置子目录访问配置代码
如果需要某个子目录(比如UISEO优化网需要增加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]
只需将相应名称换成要访问的即可。
对于具体的语法,想更深入了解的,可以百度,也可以找本人。随时为大家无私奉献!
相关文章推荐
- 安装完vs.2005之后,重新安装iis后无法使用http方式访问asp.net工程的页面的问题的解决方法
- 局域网内用IIS架设网站,解决本机可访问,但网内其他用户无法访问问题
- 解决 伪静态中真正html无法访问的问题
- 解决spring mvc静态资源无法访问的问题
- 完美解决beego 根目录不能访问静态文件的问题
- 2012服务器在IIS部署的SLL(https)网址谷歌浏览器无法访问的问题解决
- 解决PHP继承无法访问父类静态属性的问题,延迟静态绑定
- 关于IIS 对temp目录访问权限问题的解决方法
- discuz的目录未找到或者无法访问/data/template问题的解决
- Windows XP下Apache修改目录后无法访问网页问题解决
- 【ASP.NET 问题】Win7中IIS被防火墙阻止导致外网无法访问的解决方法。
- IIS网站发布数据库无法访问问题解决(新手向)
- 解决wordpress下载插件,安装失败,无法创建目录问题
- 解决PHP在Windows IIS 上传的图片无法访问的问题
- IIS问题解决之——无法访问数据库
- 访问 IIS 元数据库失败 或 W3SVC 的访问权问题解决方法 或 无法在Web服务器上启动调试
- 解决Spring MVC DispatcherServlet拦截“/”时,无法访问静态资源的问题
- 解决Windows 2000无法访问Windows XP共享目录的问题
- asp.net无法获取iis目录的问题解决方法
- 解决wordpress下载插件,安装失败,无法创建目录问题