ブログを Squarespace から自己ホスト型 WordPress に移動したばかりで、古い RSS リンクが既存のサブスクライバーに対して引き続き機能するように書き換えルールを設定しようとしています。
私が使用している URL は次のとおりです。
Squarespace: http://example.com/blog/atom.xml WordPress: http://example.com/feed/
functions.php に次のコードを追加しました
add_action( 'init', 'ss_feed' );
function ss_feed()
{
global $wp_rewrite;
$wp_rewrite->add_external_rule( 'blog/atom\.xml$', 'feed/' );
}
これにより、.htaccess ファイルが正常に更新されました。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^blog/atom\.xml$ /feed/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
ただし、http://example.com/blog/atom.xmlにアクセスしても、WordPress 404 が返されます。私は WP Super Cache を有効にしており、.htaccess 内にも大きなブロックがあることに注意してください。関係があると思われる場合は、ここに追加できます。