Win主机用wordpress,并使用伪静态后,导致站点根目录的一些与wordpress无关的文件也无法访问,都重定向到404页面。Win主机对wordpress支持不是很完美,多少有一些问题的。在用wordpress的时候通常要用到的就是伪静态,Win主机下如果设置伪静态需要提供Rewrite组件支持,之外还需要提供一份伪静态httpd.ini规则文件下,httpd.ini规则文件内容如下:
[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 through
RewriteRule /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]
上传FTP至WIN主机下,由主机加载规则文件后,之前的链接可以继续访问,还可设置固定链接的优化,但是原来可以访问的子目录,也就是二级目录不能访问了,重定向至404页面,此时可通过重新配置httpd.ini规则文件,假如我的子目录名称为yachun,新增一条伪静态规则如下:
RewriteRule /yachun/(.*) /yachun/$1 [L]
也根据多子目录需求增加多条规则,规则同上。
配置基本完成,经测试链接可能成功,但也可能依旧重定向404页面,这时候很重要的一点就是重定向的规则文件的位置不对所造成的问题,也就是说新增的静态规则不要放在最后面,应该置放在:
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
的前面,上传FTP,服务器加载过后,测试成功!!
# For normal wordpress content, via index.php
RewriteRule /yachun/(.*) /yachun/$1 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
转载请注明带链来源:春语精椿