Мне нужно перенести мультисайт WordPress с одного сервера на другой. Я продублировал все свои файлы и базу данных, и теперь я хотел бы проверить это, просмотрев несколько установленных блогов. К сожалению, я не могу получить к ним доступ, потому что правила перезаписи URL в моем .htaccess перенаправляют меня на корневой URL.
Например, предположим, что имя хоста мультисайта WP - example.com, а один из URL-адресов блога по установке - example.com/installedblog/. На новом сервере я еще не настроил свой DNS, и я могу получить доступ к своему сайту только с использованием IP-адреса и имени пользователя, например: 127.0.0.1/~username/. Этот URL работает, но если я попробую 127.0.0.1/~username/installedblog/ или 127.0.0.1/~username/wp-admin, я буду перенаправлен на страницу Apache 404.
Мой .htaccess - это файл по умолчанию для Wordpress MU, который работает на сервере с настроенным DNS:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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]
Я также пробовал изменить RewriteBase на / ~ username /, но это тоже не сработало.
Я думаю, проблема в том, что URL-адрес сайта моего WordPress - example.com/, а не 127.0.0.1/~username/, поэтому, если я хочу протестировать его на новом сервере, мне придется изменить его на 127.0.0.1. 0.1 / ~ username /, а затем обратно на example.com, что является ненужной проблемой.
Поскольку я не могу удалить свой пост, закройте его, потому что я, кажется, ответил на свой вопрос.
Не меняйте .htaccess, просто измените свой wp-config.php на новый DNS (имя или IP-адрес).
Попробуйте изменить эти переменные:
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', '127.0.0.1/~username/installedblog/' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );