Wordpress子目录博客指向单独的子域安装

时间:2017-09-27 02:42:04

标签: php wordpress .htaccess path

我正在将博客从blog.foo.com重定向到foo.com(根域)上的新wordpress安装。

我已采取以下设置步骤:

  1. 在foo.com/new-wp
  2. 安装了第二个新的wordpress实例
  3. 将index.php和.htaccess文件从foo.com/new-wp移至root foo.com
  4. 将root index.php更新为:

    require( dirname( __FILE__ ) . '/new-wp/wp-blog-header.php' );

  5. WordPress Address (URL)字段设置为https://foo.com/new-wp

  6. Site Address (URL)设为https://foo.com
  7. 使用

    更新了foo.com/new-wp wp-config.php

    if ( !defined('ABSPATH') )     define('ABSPATH', dirname(__FILE__) . '/wp-new');

  8. 在blog.foo.com上留下现有的wordpress安装

  9. 将foo.com上新博客的路径设置为foo.com/blog
  10. 为每个blog.foo.com网址设置301重定向,例如,blog.foo.com / article重定向到foo.com/article
  11. 所有内容都按预期使用根域(foo.com)和所有重定向的URL。

    然而,foo.com/blog,它应该是根目录上的博客主页子文件夹,在访问时,不显示任何静态文件,因为它请求blog.foo.com并包括:

    <link rel="canonical" href="https://blog.foo.com/" />
    <link rel='dns-prefetch' href='//blog.foo.com' />
    <link rel="pingback" href="https://blog.foo.com/xmlrpc.php">
    etc.
    

    为什么foo.com/blog请求blog.foo.com?它是一个完全独立的wordpress安装,foo.com上没有任何内容,foo.com / wp-new或foo.com/blog指向它。

    Root foo.com htaccess:

    rewriteengine on
    rewritecond %{HTTPS} off
    rewritecond %{HTTP_HOST} ^www.foo.com$ [OR]
    rewritecond %{HTTP_HOST} ^foo.com$
    rewriterule ^(.*)$ "https\:\/\/foo\.com\/$1" [R=301,L] #59ca6fd8c3abd
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
    rewriterule ^index\.php$ - [L]
    rewritecond %{REQUEST_FILENAME} !-f
    rewritecond %{REQUEST_FILENAME} !-d
    rewriterule . /index.php [L]
    

    在foo.com的数据库中,我搜索了#34;%blog.foo.com%&#34;并在wp_options表中查看此引用。我试过更换&#39; blog.foo.com&#39;与&#39; foo.com&#39;但它对我的问题没有任何影响。

    SELECT * 
    FROM  `dbname`.`wp_options` 
    WHERE (
       `option_id` LIKE  '%"%blog.foo.com%"%'
       OR  `option_name` LIKE CONVERT( _utf8 '%"%blog.foo.com%"%'
       USING utf8mb4 ) 
       COLLATE utf8mb4_unicode_ci
       OR  `option_value` LIKE CONVERT( _utf8 '%"%blog.foo.com%"%'
       USING utf8mb4 ) 
       COLLATE utf8mb4_unicode_ci
       OR  `autoload` LIKE CONVERT( _utf8 '%"%blog.foo.com%"%'
       USING utf8mb4 ) 
       COLLATE utf8mb4_unicode_ci
       )
    LIMIT 0 , 30
    

1 个答案:

答案 0 :(得分:0)

我仍然感兴趣的是foo.com/blog请求blog.foo.com尽管是单独的网站和数据库的原因的技术解释,但是,作为问题本身的实际解决方案,将URL更改为{{1它现在请求并使用正确的foo.com/something-other-than-just-blog网址进行回复。