サポート » 使い方全般 » RSSのファイル名をrss.xmlに変更したい

  • 解決済 kota1010

    (@kota1010)


    既存サイトをWPに移行するので、RSSファイルのURLを前サイトと同じく

    http://ドメイン名/rss.xml

    としたいのですが、やり方がわかりません。

    現在は

    http://ドメイン名/feed

    で出力されています。
    パーマリンク設定はカスタムにしていて、サイトのルートディレクトリに.htaccessがあります。
    プラグインでも、.htaccessに記述を追加するのでも構いません。
    どなたかおわかりの方、どうぞよろしくお願いいたします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • モデレーター gatespace

    (@gatespace)

    希望通りではないのでしょうが、
    今までのフィードのURLをmod_rewriteで新しいフィードのアドレスに変える方法なら
    Codexに載っています。

    日本語Codex:WordPress Feeds

    トピック投稿者 kota1010

    (@kota1010)

    gatespace様

    お返事ありがとうございます!

    Codexを見て、ルートディレクトリに以下の.htaccessを置いたのですが、何も変わりませんでした。

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    # END WordPress
    RewriteRule ^rss.xml(.*)? /?feed=rss2 [QSA]

    コメント部分は元々WPで生成されたもので、最後にCodexを参考に1行追加しました。

    ファイル名をrss.xmlにしたく、またwp本体はサーバーのルートディレクトリ直下ですので、
    /?feed=rss2 と思ってこう書いてみたのですが。

    この記述はどこが間違っているでしょうか。

    お手数おかけして申し訳ございませんが、検索等でも全くヒントが得られなかったので、ここでのお答えだけが頼りです。どうぞよろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    単に書く位置間違ってるだけじゃないですか?

    RewriteBase /
    RewriteRule ^rss.xml(.*)? /?feed=rss2 [QSA]
    RewriteRule ^index\.php$ - [L]

    の順番にしたらどうなります?

    トピック投稿者 kota1010

    (@kota1010)

    gatespace様
    お返事ありがとうございます。

    順番変えてお書きいただいたとおりにしてみましたが、
    やはりうまくいかず、ドメイン名/feedにアクセスするとそのまま表示され、
    ドメイン名/rss.xmlは「ページが見つかりませんでした」となります。

    何が問題なのか、お心当たりありますでしょうか。
    パーマリンク設定は生きているので、.htacess自体は動いていると思うのですが。
    お手数おかけして申し訳ございませんが、よろしくお願いいたします。

    RewriteRule ^rss\.xml(.*)? /?feed=rss2 [QSA]

    のようにピリオド(.)をエスケープすれば良いのではないでしょうか。

    こんにちは

    [QSA]でなく[L]でいいんじゃないですか?

    RewriteRule ^rss.xml /index.php?feed=rss2 [L]
    トピック投稿者 kota1010

    (@kota1010)

    linkseed様
    nobita様

    返信どうもありがとうございました。
    結論から申しますと、両方ともうまくいきませんでした。

    mod_rewriteに詳しいわけではありませんが、
    確かにnobitaさんのおっしゃるように
    [QSA]ではなく[L]でいいように思います。
    またlinkseedさんのおっしゃるとおり、ピリオドの前にはエスケープが必要にも思います。

    そこでまずlinkseedさんの記述を、
    次にnobitaさんの記述を、
    そしてお二人の合わせ技(ピリオドの前にエスケープして[L])もダメでした。

    またnobitaさんが後半を「index.php?feed=rss2」と、「index.php」を付けていられたので、
    index.phpのあるなしでもエスケープあるなしを試してみたのですが、やはりダメでした。

    うーん、理屈的には正しいように思えるのですが、いよいよわけがわからないです。

    申し訳ありませんが、引き続き何か思いつかれたことなどございましたらご教授よろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^rss.xml(.*)? /?feed=rss2 [L,R]
    
    # BEGIN WordPress
    ここはそのまま
    # END WordPress

    いまさら、な事ですが

    末尾は、改行で終わってますか?

    パーマリンク デフォルト という事はありませんか?

    トピック投稿者 kota1010

    (@kota1010)

    getespace様
    nobita様

    引き続きのお返事ありがとうございました。

    gatespaceさんの記述でうまくいきました!

    理想を言えば/feedにアクセスしたときにrss.xmlに転送され
    urlもrss.xmlと表示されるのがベストだったのですが、
    rss.xmlにアクセスして/feedに転送、表示されるようになりました!
    (一応自分で逆も試みてみたのですがうまくいきませんでした)
    助かりました、本当にどうもありがとうございました!

    nobitaさんのご指摘もありがとうございました。
    2点とも確認はしておりました。
    記述の順番と[L,R]がポイントだったようです。

    ここまでおつきあいくださいましてみなさま本当にどうもありがとうございました。
    感謝しております。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「RSSのファイル名をrss.xmlに変更したい」には新たに返信することはできません。