WordPress .htaccess不适用于301重定向

时间:2014-03-03 14:54:43

标签: wordpress apache .htaccess mod-rewrite

我正在尝试在我自己托管的WordPress博客上实施301重定向。

我试图通过包含Apache的标准mod_rewrite脚本的.htaccess文件来完成此操作。

我也试过通过GoDaddy的301重定向工具来做到这一点。

此外,我还尝试使用通常可靠的Simply 301 Redirects for WordPress插件。

以上都不是。

我在.htaccess中使用的301格式的重定向是:

RewriteRule ^/blog/example-post.html? /blog/example-post/ [R=301,L,NC]
RewriteRule ^/blog/another-post? /blog/another-post-with-new-url/ [R=301,L,NC]

如您所见,博客位于/ blog /。根目录中还有另一个.htaccess文件,其中包含以下内容:

rewriteengine on


<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Wed, 1 Jan 2020 20:00:00 GMT"
</FilesMatch>
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
rewritecond %{HTTP_HOST} ^mywebsite.com
rewriterule (.*) http://www.mywebsite.com/$1 [R=301,L]
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
rewriterule ^(.*)index\.php$ /$1 [R=301,L]
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index-cc\.php\ HTTP/
rewriterule ^(.*)index-cc\.php$ /$1 [R=301,L]
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html\ HTTP/
rewriterule ^(.*)index\.html$ /$1 [R=301,L]
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index2\.html\ HTTP/
rewriterule ^(.*)index2\.html$ /$1 [R=301,L]
rewritecond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index_OLD\.html\ HTTP/
rewriterule ^(.*)index_OLD\.html$ /$1 [R=301,L]

我暂时从.htaccess中删除了这个,看看是否与WordPress .htaccess文件有任何冲突。情况似乎并非如此。

我还将我在WordPress中使用的重定向插入根.htaccess文件中,但同样,这并没有解决问题。

我已经用完了我所知道的选项。对于我可以实施什么来解决这个问题,还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

您需要删除htaccess文件规则中的前导斜杠:

RewriteRule ^blog/example-post.html /blog/example-post/ [R=301,L,NC]
RewriteRule ^blog/another-post /blog/another-post-with-new-url/ [R=301,L,NC]

摆脱?部分。