【问题标题】:Wordpress: htaccess redirect (301) doesnt workWordpress:htaccess 重定向(301)不起作用
【发布时间】:2014-04-30 03:19:12
【问题描述】:

我有一个任务让我发疯:我有一个旧博客,并且想为几篇文章创建一个 301 重定向到我的新博客,因为我将一些内容移到了新域。

假设我的一篇旧帖子可以在 example.com/this-is-my-post 上找到,访问者应该被重定向到 example.org/my-old-post-2817。

我尝试的是这样的:

# BEGIN Redirect

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^this-is-my-post$ http://example.org/my-old-post-2817 [R=301]
</IfModule>

# END Redirect

问题在于 FF(桌面)、Chrome(Android)和标准互联网浏览器(Android)中没有重定向。在 IE(桌面)中,我收到一条错误消息,指出该页面无法显示。没有给出任何理由。

我确保 .htaccess 中没有任何不必要的空行,并且为了安全起见,我删除了浏览器的历史记录、缓存等。

我的提供商的 CCA 给我发了一条消息,说他重新保存了 mod 重写模块,我必须在 15 分钟后再次尝试。没有成功。

那么,我做错了什么?

问候,

松脆的

【问题讨论】:

    标签: regex wordpress .htaccess mod-rewrite redirect


    【解决方案1】:

    更改规则顺序以将R=301 规则保留在内部 WP 规则之前:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{QUERY_STRING}  ^$
    RewriteRule ^this-is-my-post/?$ http://example.org/my-old-post-2817 [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . index.php [L]
    

    【讨论】:

    • 感谢您的快速评论。我忘了告诉我我已经把重写规则放在任何其他东西的前面。所以我会试试你的建议。另一个问题是:我可以将所有其他帖子放在 RewriteRule 行之后,这样我就会得到这样的结构吗? RewriteRule ... RewriteRule ... RewriteRule ... 再次感谢!
    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2013-11-27
    • 2011-09-16
    • 2017-12-08
    相关资源
    最近更新 更多