以前MediaWiki做的站点也留了rss.xml在.htaccess中指向一个网址https://%{HTTP_HOST}/api.php?hidebots=1&days=30&limit=1000&action=feedrecentchanges&feedformat=rss,但这个是“最近更新”,展示的是版本对比页面链接,带有很多&,在robots.txt中被屏蔽了,搜索引擎也不去爬取,我就改为/index.php?title=Special:NewPages&feed=rss&hideredirs=1&limit=500&namespace=0&tagfilter= 来展示“新建页面”,另外就是把rss.xml不做成跳转,而是固定的网址,实现办法是先建一个rss.php:
<?php /* * rss.php replace rss.xml * James Qi * 2017-3-4 for MediaWiki * modify .htaccess: RewriteCond %{REQUEST_URI} ^\/rss\.xml$RewriteCond %{REQUEST_URI} ^\/rss\.xml$ RewriteRule ^(.*)$ /rss.php [L] RewriteRule ^(.*)$ /rss.php [L] */ header("Content-Type: text/xml; charset=utf-8"); $server_name = $_SERVER['SERVER_NAME']; $request_uri = "/index.php?title=Special:NewPages&feed=rss&hideredirs=1&limit=500&namespace=0&tagfilter="; $rss = file_get_contents("https://$server_name$request_uri"); print $rss; ?>
然后修改.htaccess:
RewriteCond %{REQUEST_URI} ^\/rss\.xml$ RewriteRule ^(.*)$ /rss.php [L]
这样用户再访问rss.xml时网址不会跳转,而是依靠rss.php去读取内容来这里展示,例如: https://www.jamesqi.com/rss.xml 。
评论