有两种方法可以做到这一点。从你的问题来看,听起来你目前有这样的结构:
/home
... /public_html
... ... wp-config.php <- for site1
... ... /site1
... ... ... /wp-admin
... ... ... /wp-content
... ... ... /wp-includes
... ... /site2
... ... ... /wp-admin
... ... ... /wp-content
... ... ... /wp-includes
... ... ... wp-config.php <- for site2
您要做的是移动
wp-config.php
也可以从站点根目录中删除其他站点的文件。你指出这会导致一些冲突是正确的,因为每个网站都会试图包括
wp-config.php
但不能全部使用同一个。
更大的问题是没有办法使用wp-config.site1.php
或wp-config1.php
或任何其他变体,以保持事物的独立性,而不破坏核心。
如果你看一下wp-load.php
您将看到:
if ( file_exists( ABSPATH . \'wp-config.php\') ) {
/** The config file resides in ABSPATH */
require_once( ABSPATH . \'wp-config.php\' );
} elseif ( file_exists( dirname(ABSPATH) . \'/wp-config.php\' ) && ! file_exists( dirname(ABSPATH) . \'/wp-settings.php\' ) ) {
/** The config file resides one level above ABSPATH but is not part of another install*/
require_once( dirname(ABSPATH) . \'/wp-config.php\' );
}
WordPress将只查找超过其当前位置的一个目录,并且只查找
wp-config.php
.
你最好的办法是把一切都往上推一层,给自己一些分离。然后将Apache vhosts文件指向新的文件夹位置。因此,请按如下方式设置目录结构:
/home
... /public_html
... ... /site1
... ... ... wp-config.php <- for site1
... ... ... /wordpress
... ... ... ... /wp-admin
... ... ... ... /wp-content
... ... ... ... /wp-includes
... ... /site2
... ... ... wp-config.php <- for site2
... ... ... /wordpress
... ... ... ... /wp-admin
... ... ... ... /wp-content
... ... ... ... /wp-includes
然后,您的vhosts文件将指向
www.site1.com
到
/home/public_html/site1/wordpress
而不是
/home/public_html/site
. 是的,这有点复杂,但唯一可以避免这个问题的方法是。