Apache 虚拟主机设置后 Wordpress 站点损坏

Wordpress site broken after Apache vhost setting

我有一个可用的 wordpress 站点,可通过 http://localhost/wp corresponding to the directory /Library/WebServers/Documents/wp. Since I desired to have my wordpress site accessible by http://wordpress 访问而无需移动 wordpress 目录我决定在 /etc/private/hosts 中设置一个新主机,我在其中添加了条目:

127.0.0.1   wordpress

然后我可以使用 http://wordpress/wp 访问该站点。为了避免 URL 的 'wp' 部分,我决定通过在 /etc/apache2/extra/httpd-vhosts.conf 中添加以下块来使用 Apache 虚拟主机:

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/wp"
    ServerName wordpress
    ServerAlias wordpress
    ErrorLog "/private/var/log/apache2/wordpress"
    CustomLog "/private/var/log/apache2/wordpress" common
</VirtualHost>

然后我重新启动 Apache 并尝试使用 URL 访问该站点 http://wordpress 我能够看到第一页的文字部分,但 没有图像 和所有 损坏的链接 。 查看链接,我发现他们指向的 URL 仍然包含我试图避免的 'wp' 部分。 有什么建议吗?

是的,在您的数据库中,所有 URL 中仍然包含 /wp/。更改您的 Apache 配置并没有改变这一点。最简单的方法是使用 wp-cli (http://wp-cli.org) 在您的 WordPress 数据库上进行搜索和替换。

在继续之前备份您的数据库

wp search-replace 'http://wordpress/wp/' 'http://wordpress/' --dry-run

假设您已经安装了 wp-cli 并将其命名为 wp,上面的命令将向您显示它为删除 /wp/ 所做的所有更改。从你的网址。

一旦您对它正在更改正确的内容感到满意,请删除``--dry-运行`,它实际上会为您进行更改。

wp-cli 是一个强大的工具。我们在 http://getpantheon.com 上用它完成了很多任务,我用它在我所有的个人 WordPress 网站上做了很多维护工作。

HTH,

=C=