Elh*_*Gdz 8 php wordpress .htaccess
我正在尝试将部署的WordPress多站点移动到本地环境.我备份了服务器数据库和文件.在我的本地环境中,我创建了一个新数据库并导入了备份.我还将服务器文件复制到本地计算机.
我做了这些步骤:
我改的wp-config.php文件,并与新的更新它db-name
,db-username
,db-password
并设置define('DOMAIN_CURRENT_SITE', 'www.mysitename.com');
到define('DOMAIN_CURRENT_SITE', 'localhost/mysitename');
.
我option_value
在wp-option数据库表中更改为指向我的本地地址.
我还从.htaccess中删除了这些行:
# Redirect non-www urls to www
RewriteCond %{HTTP_HOST} !^www\.mysitename\.com
RewriteRule (.*) http://www.mysitename.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)但是当我转到127.0.0.1/mysitename时,我收到此错误:此网页有一个重定向循环.
当我换define('DOMAIN_CURRENT_SITE', 'localhost/mysitename');
到define('DOMAIN_CURRENT_SITE', 'localhost');
并转到127.0.0.1/mysitename地址时,它会显示phpinfo()页面.
我该如何解决我的问题?
请解释我是否必须在.htaccess和wp-config.php文件中设置一些内容.
非常感谢.
nin*_*nja 14
编辑:最近不得不再次迁移一个多站点,这个指南从01/03-2016仍然可以正常工作.数据库编辑非常愚蠢,一个错误,你要么死白屏或连接数据库错误,所以要注意:)
我无法想出允许带协议的localhost链接(http://),所以如果你看到"(http:)localhost"将其读作http:// localhost /.如果有人可以为我编辑这将是伟大的!
编辑wp-config.php,更改数据库名称,用户名和密码.通常在"define('WP_DEBUG'...我定义"WP_HOME"和"WP_SITEURL"之下,这些将覆盖WordPress数据库设置以获取根目录."DOMAIN_CURRENT_SITE"用于多站点安装.因此,如果它不是多站点,请不要使用它,如果是多站点,只需使用它而不是WP_HOME和WP_SITEURL.
define('WP_HOME', 'http://mysitename.com');
define('WP_SITEURL', 'http://mysitename.com');
Run Code Online (Sandbox Code Playgroud)如果您从localhost上传了.htaccess,请将其从服务器中删除.
而且你已经完成了!无需费心去做数据库更改.对于localhost安装,只需将WP_HOME和WP_SITEURL定义为localhost.
Wordpress中的多站点是一个痛苦的迁移,它涉及几个数据库更改,甚至当你使一切正确时,似乎只有一些时间没有错误.但是这些是建议的步骤:
使用新的数据库信息编辑wp-config.php,添加以下定义:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // true or false depending if the paths for each multisite is pointed by a subdomain.
define('DOMAIN_CURRENT_SITE', 'localhost'); // localhost is the DOMAIN of the new location, so even if the ABS_PATH is localhost/whatever, you should have localhost here.
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Run Code Online (Sandbox Code Playgroud)您应该在要导出的网站的wp-config.php中包含所有这些内容,因此只需从中复制粘贴它们,然后编辑DOMAIN_CURRENT_SITE即可.
像这样编辑你的htaccess(Rewritebase/path /应该是相对路径,即如果你的网站位于localhost/mypage,它应该是"RewriteBase/mypage /"):
# MultiSite
RewriteEngine On
RewriteBase /subfolder-from-localhost/
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Run Code Online (Sandbox Code Playgroud)数据库编辑时间!需要对多站点的每个子站点执行这些步骤,如果我键入更改表"wp_site",则应在wp_site1/wp_site2等中复制它...
在表wp_options中:将字段"site_url"和"home"更改为(http :) localhost /子文件夹(没有尾部斜杠).
在表wp_blogs中:将"domain"更改为"localhost",并将每个子站点的每个条目的"path"更改为/ subfolder /(必须具有尾部斜杠)
在表wp_site中:将"domain"更改为"localhost",将"path"更改为/ subfolder /(必须具有尾部斜杠)
在表wp_sitemeta中:将"siteurl"更改为完整路径,即(http :) localhost /子文件夹/(必须有尾部斜杠)
现在您应该至少可以访问您的页面,如果您仍然获得重定向循环或白屏死机,请仔细检查数据库更改.现在登录到admin,我们需要更改数据库中的一些硬编码URL,我通常使用一个名为"Seach and replace"的插件来执行此操作,因此请下载并安装此插件,并通过键入应搜索的内容来使用它(旧网址)以及用(新网址)替换它的内容.
Search for: http://mysitename.com
Replace with: (http:)localhost
Run Code Online (Sandbox Code Playgroud)现在希望你有多站点的功能迁移.正如我所说,我已经做了几次这样的事情,如果一切正常,它几乎是随机的.我说我用这种方法取得了成功,可能是8次中的6次.
编辑:添加了如何迁移多站点.