xmlファイルをつくります。
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>HPScript</title>
<link>http://hpscript.com/rss/test.xml</link>
<description>hpscriptのRSSです</description>
<language>ja-JP</language>
<item>
<guid isPermaLink="false"></guid>
<link>
SCSK
</link>
<title>scsk</title>
<description/>
</item>
<item>
<guid isPermaLink="false"></guid>
<link>
JBS
</link>
<title>jbs</title>
<description/>
</item>
</channel>
</rss>
vagrantでphpファイルをつくって取得する。
$rss = simplexml_load_file('http://hpscript.com/rss/rss.xml');
foreach($rss->channel->item as $item){
echo $item->title ."<br>";
}
モチ、ここまではOK
hpscript.com/rss/のディレクトリに.htaccessで301リダイレクトを書きます。
RewriteEngine on
RewriteRule ^index.php$ http://hpscript.com/rss/rss.xml [R=301,L]
http://hpscript.com/rss/index.php をたたくと、http://hpscript.com/rss/rss.xmlに301リダイレクトします。
では、vagrant側で、index.phpをfetchした場合。
$rss = simplexml_load_file('http://hpscript.com/rss/index.php');
foreach($rss->channel->item as $item){
echo $item->title ."<br>";
}
取れてます!
では、下層ディレクトリから301リダイレクトをした場合。corpというディレクトリをつくり、301リダイレクトの設定をします。
下層ディレクトリでも全く同じで、301リダイレクトをすれば、取得できました。
RewriteEngine on
RewriteRule ^old.php$ http://hpscript.com/rss/rss.xml [R=301,L]
では、異なるドメインから301リダイレクトをした場合を考えたい。
http://phone-search.online/ というurl(電話のサービスづくりで取得したドメイン)にtestというディレクトリをつくり、同じように、301ディダイレクト設定を行う。
RewriteEngine on
RewriteRule ^old.php$ http://hpscript.com/rss/rss.xml [R=301,L]
phone-search.online/test/index.phpからfetchすると、
$rss = simplexml_load_file('http://phone-search.online/test/index.php');
foreach($rss->channel->item as $item){
echo $item->title ."<br>";
}
ドメインが変わっても、301リダイレクトで取れている。
つまり、RSSのドメインが変わっても、旧URLに301リダイレクトが設定できれば、新しいURLのRSS取得はできる。
simplexml_load_file以外でもいけるか試したい。