播客 Feed 的 301 重定向

301 Redirect for Podcast Feed

我们最近从 Clover 站点迁移到 Wordpress 站点,因此我们播客的结构发生了变化。我们有两个播客提要,一个用于音频,一个用于视频。

旧的播客提要是从这些 url 中提取的...

http://nmconline.net/podcast.php?pageID=27

http://nmconline.net/podcast.php?pageID=28

我们的新 Feed 位于...

http://nmc.church/feed/videopodcast

http://nmc.church/feed/audiopodcast

我已经尝试了几种不同的重定向方式,但仍然没有成功。我试过使用直接 301 重定向,最近才转向 RewriteRule,但仍然无法正常工作。不确定它是否重要,但我正在将旧 nmconline.net 域转发到我们的新 nmc.church 域。

这是我当前的 .htaccess 文件。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^podcast\.php?pageID=27 http://nmc.church/feed/videopodcast [R=301,L]
RewriteRule ^podcast\.php?pageID=28 http://nmc.church/feed/audiopodcast [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

提前致谢!

您无法在 RewriteRule 中匹配 QUERY_STRING。方法如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^pageID=27$ [NC]
RewriteRule ^podcast\.php$ http://nmc.church/feed/videopodcast? [R=301,L]

RewriteCond %{QUERY_STRING} ^pageID=28$ [NC]
RewriteRule ^podcast\.php$ http://nmc.church/feed/audiopodcast? [R=301,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
在 URL 末尾的

? 将删除之前的查询字符串。