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以外でもいけるか試したい。