同一域名下部署WordPress与mod_tile(renderd)重写规则后404问题求助
排查解决步骤
第一步:检查mod_tile的虚拟主机挂载配置
打开你站点对外提供服务的域名对应的Apache虚拟主机配置文件(默认路径为/etc/apache2/sites-available/你的站点配置文件名.conf),确认mod_tile的相关配置(如LoadTileConfigDir、Tile相关的路由规则)已经写入该虚拟主机段内,而非仅配置在localhost默认虚拟主机或全局配置中。配置修改后需要执行systemctl reload apache2生效。第二步:优化.htaccess重写规则
你当前的/hot/路径排除规则是通过重写条件实现的,优先级较低容易被其他规则覆盖,可直接在重写逻辑最前面添加终止规则,修改后的完整配置如下:<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / # 匹配/hot开头的请求直接终止重写流程,不需要走WordPress处理 RewriteRule ^hot(/.*)?$ - [L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>第三步:查看Apache日志定位具体错误
执行如下命令查看实时错误日志,访问/hot/路径下的资源时查看是否有mod_tile、renderd相关的报错:
常见报错对应解决方案:tail -f /var/log/apache2/error.log- 提示renderd连接失败:执行
systemctl restart renderd重启服务,检查/etc/renderd.conf配置的监听地址、socket路径是否正确 - 提示权限不足:执行
chown -R www-data:www-data /var/cache/renderd/tiles/修改瓦片缓存目录权限
- 提示renderd连接失败:执行
第四步:确认renderd服务状态
执行systemctl status renderd确认服务处于正常运行状态,没有异常退出日志。
内容的提问来源于stack exchange,提问作者gisly
相关产品推荐
相关产品推荐

