WordPress 多站点 .htaccess 不适用于 IP 地址和波浪号 URL

WordPress 多站点 .htaccess 不适用于 IP 地址和波浪号 URL

我必须将 WordPress 多站点从一台服务器移至另一台服务器。我复制了所有文件和数据库,现在我想通过浏览一些已安装的博客来测试它。不幸的是,我无法访问它们,因为我的 .htaccess 中的 URL 重写规则将我重定向到根 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/,但是也没有作用。

我认为问题在于我的 WordPress 的站点 URL 是 example.com/,而不是 127.0.0.1/~username/,所以如果我想在新服务器上测试它,我必须将其更改为 127.0.0.1/~username/,然后再改回 example.com,这是不必要的麻烦。

由于我无法删除我的帖子,请关闭它,因为我似乎已经回答了我自己的问题。

答案1

不要更改 .htaccess,只需使用新的 DNS(名称或 IP 地址)更改您的 wp-config.php。

尝试修改这些变量:

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 );

相关内容