IP子目录部署WordPress6.0 自定义固定链接404如何修复
WordPress子目录+IP端口访问时自定义固定链接404修复方案
核心原因
当前生成的.htaccess规则本身配置正确,404问题来自Web服务器层未启用重写规则支持,导致请求没有被转发到WordPress入口文件index.php做路由解析。
修复步骤
- 启用Apache重写模块
服务器终端执行以下命令开启mod_rewrite:
CentOS/RHEL系列默认已编译mod_rewrite模块,无需手动执行启用命令,重启httpd服务即可。# Debian/Ubuntu 系列 a2enmod rewrite systemctl restart apache2 - 调整Apache目录权限配置,允许.htaccess生效
找到8091端口对应的虚拟主机配置文件:- Debian/Ubuntu路径:
/etc/apache2/sites-available/下的对应站点配置文件 - CentOS/RHEL路径:
/etc/httpd/conf.d/下的对应站点配置文件
找到配置中指向站点存放目录的<Directory>段,将AllowOverride None修改为AllowOverride All,参考配置如下:
如果子目录<Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>subfolder单独配置了Directory规则,也需要同步将对应段的AllowOverride设为All - Debian/Ubuntu路径:
- 校验配置并重启服务
执行配置校验命令避免语法错误:
命令返回# Debian/Ubuntu apache2ctl configtest # CentOS/RHEL httpd -tSyntax OK后,重启Web服务:# Debian/Ubuntu systemctl restart apache2 # CentOS/RHEL systemctl restart httpd - 刷新WordPress重写缓存
登录WordPress管理后台,进入「设置-固定链接」页面,不需要修改任何配置,直接拉到页面底部点击「保存更改」即可。 - 若使用Nginx作为Web服务/反向代理的额外配置
Nginx不识别.htaccess规则,需要在对应站点的server配置块中,添加子目录的重写规则:
执行location /subfolder/ { try_files $uri $uri/ /subfolder/index.php?$args; }nginx -t校验配置通过后,执行systemctl reload nginx重载配置即可。
完成以上操作后,自定义结构的固定链接即可正常访问。
内容的提问来源于stack exchange,提问作者creators
相关产品推荐
相关产品推荐

