こんばんわ。
そうすると個々のサブディレクトリのサイトのRSSは
/サブディレクトリのサイト2/rss.xml
/rss.xml
ですね。
・Googleウェブマスターツール
・RSSを読み込んでいろいろしてくれるWebサービス
で便利に利用できます。
複数のRSSを1つにまとめるPHPだけを作成して、サイトと同じサーバーのCRONを利用して、マージしたRSSを生成していました。
・個々のサブディレクトリのRSSが項目が多くなってくる
・サブディレクトリのサイト数も多くなってくる
・複数のRSSをPHPで1つにまとめて
かつ、
・1つにまとめたRSSをドメイントップのサーバーにPHPで転送
↓
別サーバーのミニバードに転送
これで、複数のRSSをマージしてファイル転送まで勝手にやってくれます。
※<>と?は半角です。
※<br/>も半角です。
今私はサブディレクトリ型のサイトを複数作成しています。
そうすると個々のサブディレクトリのサイトのRSSは
/サブディレクトリのサイト1/rss.xml
/サブディレクトリのサイト2/rss.xml
とかになります。
いっぽうドメイントップのrssは
/rss.xml
ですね。
rssのフォルダ構成は実際とは若干異なります。
でこれらのRSSを1つにまとめれば
・Googleウェブマスターツール
・RSSを読み込んでいろいろしてくれるWebサービス
で便利に利用できます。
最初は、
複数のRSSを1つにまとめるPHPだけを作成して、サイトと同じサーバーのCRONを利用して、マージしたRSSを生成していました。
ですが、
・個々のサブディレクトリのRSSが項目が多くなってくる
・サブディレクトリのサイト数も多くなってくる
この状態で1つのRSSにまとめるPHPを実行すると、わずかの間ですがサーバーの反応が悪くなります。
そこで別サーバーで
・複数のRSSをPHPで1つにまとめて
かつ、
・1つにまとめたRSSをドメイントップのサーバーにPHPで転送
そんなに詳しくないので手こずりましたが
ロリポップのサーバー上で複数のRSSを1つにまとめる
↓
別サーバーのミニバードに転送

こんな感じです。
新たにサブディレクトリのRSSを追加したい場合は、PHPにRSSのURLを追加するだけです。
これで、複数のRSSをマージしてファイル転送まで勝手にやってくれます。
ホントはキャッシュを利用しなくてもいいんですが、どうやって外すかがわかりません(笑)
このPHPをロリポップののCRONに登録し毎日定時に実行するようにしました。
RSSをマージするPHPはググればすぐに見つかります。
別サーバーにファイル転送するPHPだけ書いておきます。
$ftp_server="●リモートのホスト名●";
$ftp_user_name="●リモートのユーザー名●";
$ftp_user_pass="●リモートのパスワード●";
//サーバーに接続する
$conn_id = ftp_connect($ftp_server);
// ユーザ名とパスワードでログインする
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
// 接続できたか確認する
if((!$conn_id) || (!$login_result)){
echo $ftp_user_name. "のFTP接続に失敗しました。";
exit;
} else {
echo $ftp_user_name."のFTP接続に成功しました。";
}
if(ftp_chdir($conn_id,"●リモートのフォルダ名(最初と最後の/なし)●")){
echo "現在のカレントディレクトリは、「" . ftp_pwd($conn_id) . "」です。<br/>";
} else {
echo "ディレクトリを移動できません<br/>";
}
// カレントディレクトリの内容を得る
$contents = ftp_nlist($conn_id,".");
// $contents を出力する
// var_dump($contents);
$local_file="●転送元のファイル名●";
$remote_file="●転送先のファイル名●";
echo " <br/>" ;
echo "ローカルファイル名:" .$local_file ."<br/>";
echo "リモートファイル名:" .$remote_file ."<br/>";
echo "↓ <br/>" ;
if(!ftp_put($conn_id,$remote_file,$local_file,FTP_BINARY)){
echo "FTPアップロードに失敗しました。";
exit;
} else {
echo "FTPアップロードに成功しました。";
}
ftp_close($conn_id);
以上を<?php と ?>で囲んで◯◯.phpのファイル名で保存すればOKです。
※<>と?は半角です。
※<br/>も半角です。
日本語文字を含んでいるので、文字コードはUTF-8かな。