我正在将博客从blog.foo.com
重定向到foo.com
(根域)上的新wordpress安装。
我已采取以下设置步骤:
将root index.php更新为:
require( dirname( __FILE__ ) . '/new-wp/wp-blog-header.php' );
将WordPress Address (URL)
字段设置为https://foo.com/new-wp
Site Address (URL)
设为https://foo.com
使用
更新了foo.com/new-wp wp-config.php if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/wp-new');
在blog.foo.com上留下现有的wordpress安装
所有内容都按预期使用根域(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
答案 0 :(得分:0)
我仍然感兴趣的是foo.com/blog
请求blog.foo.com
尽管是单独的网站和数据库的原因的技术解释,但是,作为问题本身的实际解决方案,将URL更改为{{1它现在请求并使用正确的foo.com/something-other-than-just-blog
网址进行回复。