Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 301只重定向帖子,不重定向页面_Wordpress_.htaccess - Fatal编程技术网

Wordpress 301只重定向帖子,不重定向页面

Wordpress 301只重定向帖子,不重定向页面,wordpress,.htaccess,Wordpress,.htaccess,我期待着重定向所有的文章,而不是网页和自定义文章类型从旧域到新域。比如说所有的帖子 http://www.example.com/post1应转到http://example1.com/post1 http://www.example.com/post1应转到http://example1.com/post1 页面,即http://www.example.com/page1仍应正常工作 我可以找到很多关于将博客移动到子目录以及移动所有链接的答案,但不仅仅是移动帖子而不是页面 编辑 有1000多个

我期待着重定向所有的文章,而不是网页和自定义文章类型从旧域到新域。比如说所有的帖子
http://www.example.com/post1
应转到
http://example1.com/post1
http://www.example.com/post1
应转到
http://example1.com/post1

页面,即
http://www.example.com/page1
仍应正常工作

我可以找到很多关于将博客移动到子目录以及移动所有链接的答案,但不仅仅是移动帖子而不是页面

编辑 有1000多个帖子,所以我正在寻找一种动态的方式来做到这一点


感谢您的帮助

我认为使用此URL架构不可能做到这一点。htaccess(或其背后的Apache)不知道
post1
是帖子还是页面。它将如何在这个基础上重定向

如果您想单独更改页面的URL结构(我认为这在默认情况下是不可能的,或者我错了吗?),您可以针对他们的URL方案并重定向

要访问旧页面(使用新URL),您可以使用“断开链接检查器”插件


更新:您可以使用钩子检查调用的帖子是帖子还是页面,然后使用
wp\u redirect
调用您的新URL。

我最终使用的黑客是

  • 甚至在get_header()之前,将ob_start添加到single.php作为第一行
  • 在functions.php中添加以下代码
  • 使用您的站点域名更改
    example.com

    add_action('wp_head','redirectme');
    function redirectme() {
        if ('post' === get_post_type()){
            wp_redirect( 'http://example.com' . $_SERVER['REQUEST_URI'] , 301 ); exit;
        }
    }
    

    您想手动执行吗?你可以这样做吗?博客中有1000多篇帖子,因此旧的blog example.com将无法正常运行,无法保留页面,由于新域名将拥有旧域名的所有博客帖子,我已经移动了域名,只是想确保旧URL是301重定向。如果需要,我很乐意使用functions.php进行重定向,但我不确定具体怎么做this@QuebrandoCabeca有很多帖子需要移动到如何理解-帖子是URL或page?有没有什么方法/动作钩子可以让我使用wordpress中的php或wp_重定向函数来实现这一点?很高兴你找到了解决方案。