我的WordPress网站运行在共享的Apache Web服务器上。我使用一个商业插件来记录客户预订。此插件在plugin init中使用add\\u feed()注册自定义WordPress提要。当使用其链接请求时,服务器提要响应包含内联。ics日历文件:插件为“内容类型:文本/日历”设置了一些标题行;字符集=utf-8“和”内容配置:内联;文件名=\'$文件名)。然后,它通过在带有预订的表中循环生成VEVENT。因此,此提要没有以任何方式链接到正常帖子等。同样需要注意的是,插件不会在标题中输出上次修改的日期。此提要适用于大多数请求web日历文件的设备和外部站点。
我的一台设备(iOS 14上的iPhone)无法刷新此日历订阅。初始订阅在设备上生成了有效的web日历,但无法进行更新。通过检查标题,可以清楚地看出,iPhone是唯一在尝试刷新/更新日历时在其请求标题中发送if-modified-since的设备。web服务器响应为304未修改,并且未发送提要/文件。
我现在有一个解决方法。htaccess,它消除了的请求标头中的if-modified-since。ics文件,但这并不能解决根本原因。
问题是,web服务器将if modified since日期与另一个日期进行比较,可能是它为原始文件发送的最后一个修改日期。正如所指定的,最后一次修改不是由插件生成的,但服务器每次都会输出它。插件作者不知道该提要的最后修改日期来自何处。他们说WordPress不提供挂钩或操作来设置/修改提要的日期,因为它是动态生成的。使用来自其服务器的feed进行测试:该feed始终是交付的,尽管feed头中包含的最后一次修改要晚于iPhone请求头中的if-modified-since。
当返回此WordPress提要的304响应时,有没有建议我的Apache服务器或WordPress配置可以执行哪个日期比较?有什么办法解决这个问题吗?