WordPress在iis下伪静态后子目录无法访问的解决办法
今天换了个主机把Wordpress升级到2.9,遇到了一个小问题,不知道是Wordpress2.9做了改变还是咋地,之前在2.8上正常使用的伪静态出问题了:做伪静态之后无法访问子目录了,只要是非wp-开头的子目录(文件夹),通过http://www.anysns.com/子目录,统统是404错误…还好被我暂时解决了,具体的方法如下:
问题症状:
由于是win下的iis主机,所以只能使用isapi-rewrite组件解决伪静态的问题,之前的伪静态规则如下:
[ISAPI_Rewrite]
# 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 throughRewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [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]
之前设置的的Wordpress永久链接现在仍然可用,只是之前正常访问的子目录都无法访问了:被重定向到404。
解决办法:
我的解决办法是给子目录单独设置一条规则:
如为名为sub的子目录设置一条规则:
RewriteRule /sub/(.*) /sub/$1 [L]
上面的意思访问子目录sub都转到sub子目录,也就是访问http://anysns.com/sub时就转到空间根目录下的sub文件夹;
如果你有多个子目录的话,可以多设置几条
写在最后:
上面的办法只是治标不治标的,我想更好的办法就是在空间根目录下建一个子文件夹,将所有的要使用的子目录都放在其里面,单独对其做一条RewriteRule,具体代码我已近想好了,只是不知道能不能有效果,明天同空间商联系做下试验,有效的话我会把代码在本文更新。



原来用win主机时一直找,现在不要了
这方面不是很懂,得多向博主学习学习!
还好我不是win主机
我也是Linux主机滴。。
这个方法确实挺投机的
@小林
是的,成功了吗
@Yusn
这样可以吗?
@小巷
应该可以的吧,有问题再请教你
@Yusn
呵呵 回复的这么及时?
Yes, I’m online
下班回家喽
@Yusn
在博客上面聊天 太那个了吧 我也准备下班了
@小巷
我到家啦,哈哈
@Yusn
我也online,呵呵
@小林
你是哪个小林?
老衲也来test一下啊
@老衲
阿弥陀佛,呵呵
Come On Socco
不行哦 我的是wp最新版本的
按照你所说的方法设置了还是不行,头大袄
@风景
请先确认你的情况跟我的差不多吗,我是win主机,安装了伪静态插件,要将http.ini放置到空间主机上面,而不是在你的网站空间根目录,要放置的话请先联系你的主机商
要将httpd.ini放置到空间主机上面
就这点不同哦
但是空间商是已经启用了 rewrite组件了的,httpd.ini我上传到我虚拟主机的根目录下已经静态化成功了,但是就是因为我在空间二级目录下安装了sns软件ucenter home ,现在没办法进去,就是想解决这么一个问题,
如果单独wordpress静态化,事实上已经成功了的哦
@风景
这个不简单吗:比如你的子目录是sns,只要再添加一条下面的记录就OK了
感谢Yusn 兄,已经成功就是二级目录必须加/才能访问成功,非常感谢
博客正在测试完善中,还没开放 ,呵呵
@风景
呵呵,太客气啦,常联系哦!