Apache 2.2 将 rss http 410 页面显示为 application/rss+xml 内容类型

Apache 2.2 将 rss http 410 页面显示为 application/rss+xml 内容类型

我在发送非常旧的 RSS 源时遇到 http-410 问题。功能上,这种情况可能发生在

  1. 非常旧的 RSS 源,内容不再更新/主题无法移动到另一个源
  2. 从第三方网站迁移到我们的网站,RSS 源不再受支持

我在我的网站配置中尝试了几件事,如下所示;

<VirtualHost *:80>

        DocumentRoot /opt/tomcat/webapps/ROOT/
        ErrorDocument 500 /error/static/error-500.html
        ErrorDocument 503 /error/static/error-500.html
        ErrorDocument 404 /error/static/rss/error-404.html
        ErrorDocument 410 /error/static/rss/error-410.html

        # When error pages need to be served by apache,
        # exclude the files to serve as below (in comment)
        SetEnvIf Request_URI "/error/static/*" no-jk


# force all files to be image/gif:
<Location *.rss>
#<Location *>
#ForceType application/rss+xml
</Location>
#AddType application/rss+xml .rss
#AddType application/rss+xml .xml
#AddType application/rss+xml .html


        JkMount /* rss;use_server_errors=402
#        JkMount /* rss

        RewriteEngine on


        JkMount /news.rss rss
        JkMount /documenten-en-publicaties.rss rss

        RewriteEngine on

        RewriteRule ^/news.rss$ - [NC,T=application/rss+xml,G,L]
        RewriteRule ^/documenten-en-publicaties.rss$ - [NC,G,L]

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        ErrorLog "|/usr/bin/logger -s -p local3.err  -t 'Apache'"
        CustomLog "|/usr/bin/logger -s -p local2.info  -t 'Apache'" combined
        ServerSignature Off
</VirtualHost>

期望的最终结果应该是在 /news.rss 和 /documenten-en-publicaties.rss 上出现 410 页面,错误页面中的内容类型为“application/rss+xml”

答案1

经过漫长的道路,我找到了解决方案。最后我遇到了几个问题,但为了解决这个问题,我将错误文档更改为 xml,并添加了 AddType

       ErrorDocument 410 /error/static/rss/error-410.xml

并添加以下类型

AddType application/rss+xml .xml

这已修复 410 错误文档的内容类型。

相关内容