IIS显示文件目录而非index.php,点击文件报404错误求助
IIS下WordPress显示目录+404问题排查
1. 确认默认文档配置真的生效
你说已经把index.php设为默认页首位,但得再仔细核对:
- 右键站点→属性→文档标签,确认index.php在列表最顶部,且是勾选状态
- 检查父级服务器的默认文档配置,有没有覆盖站点级的设置(有些服务器会锁死父级配置,导致站点级修改无效)
- 子目录的默认文档是否继承了站点设置,别单独改了子目录的配置
2. 检查PHP模块是否配置到位
IIS没正确配置PHP的话,根本解析不了index.php,自然会显示文件目录,点文件还会404:
- 先装IIS的PHP管理器(或者手动配置FastCGI),然后去处理程序映射里看有没有
.php的FastCGI规则,路径要指向你安装的php-cgi.exe - 新建个
phpinfo.php,写入内容<?php phpinfo(); ?>,访问这个文件,如果显示不了PHP信息,那就是PHP配置的问题,先解决这个再说
3. 核对文件权限
IIS应用池的用户得有WordPress目录的读写权限:
- 右键站点根目录→安全,添加
IIS AppPool\[你的站点名称]这个用户,给它读取、写入、列出文件夹内容的权限 - wp-content、wp-includes这些子目录也得给对权限,特别是wp-content,没写入权限后续连插件都装不了
4. 配置URL重写规则
WordPress的内页依赖URL重写,IIS没开这个模块或者没配规则,点内页必404:
- 先装IIS URL重写模块(用Web平台安装器装最方便)
- 确保根目录有
web.config文件,没有的话去WordPress后台改固定链接设置,保存后会自动生成;或者手动写一个,示例代码:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress Rewrite" patternSyntax="Wildcard"> <match url="*" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
5. 检查站点绑定和DNS
最后确认站点绑定的主机头是www.uacdn.info,DNS解析也没问题:
- 去IIS的站点绑定里看,HTTP/HTTPS的主机头是不是准确,端口有没有设对(80/443)
- 服务器本地ping一下
www.uacdn.info,看是不是指向服务器的IP,避免DNS缓存导致访问错了服务器
内容的提问来源于stack exchange,提问作者Chris Barnett
相关产品推荐
相关产品推荐

