【问题标题】:WordPress Admin Redirects to Previous EC2 Public DNSWordPress 管理员重定向到以前的 EC2 公共 DNS
【发布时间】:2013-07-17 20:36:25
【问题描述】:

我在我的 Amazon EC2 Amazon Linux AMI 微型实例上成功安装了 WordPress 3.5.2。我能够登录到后台管理,并查看我的前端博客文章。

但是,在停止并重新启动微型实例后(为了尽量减少费用),我获得了一个新的公共 DNS 地址。我重新启动了 httpd 和 mysqld 服务。当我尝试使用这个新 URL 访问我的管理后端时,我不断被重定向到不再存在的以前的公共 DNS

http://ec2-xx-xxx-x-xxx.compute-1.amazonaws.com/mysite/wp-admin

我清除了 Chrome 的缓存。我在配置文件中找不到站点 url。我不知道该怎么办。任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: wordpress amazon-ec2


    【解决方案1】:

    WP-Admin 将重定向到wp_options 表中设置的siteurl 选项。这通常是 ID 为 1 的行,但您可以通过以下方式获取:

    SELECT * FROM wp_options WHERE option_name = "siteurl";
    

    你可以更新它:

    UPDATE wp_options SET option_value = "http://your-new-site-name.com" WHERE option_name = "siteurl";
    

    【讨论】:

    • +1 感谢您的回复。我以 root 身份登录 mysql,选择了我的 WordPress 数据库,然后发出了这个命令:SELECT * FROM wp_options WHERE option_name = "siteurl";但我收到错误 1146:表 'mysite.wp_options' 不存在。
    • 抱歉,我忘记将数据库前缀更改为wp 以外的其他名称,我正在取得进展...
    • 更新后,我重启了httpd和mysqld服务。我可以访问我的前端(尽管没有 css 样式)。但是,当我现在尝试访问后端时,出现此错误:404 Not Found. The requested URL /wp-login.php was not found on this server.
    • 也许您需要使用新域名更新您的 Apache vhost?
    • 非常感谢克里斯。我遗漏了 WordPress 所在的子目录,这是一个错误。您的更新语句通过将目录附加到末尾,如下所示:UPDATE wp_options SET option_value = "http://your-new-site-name.com/mysite" WHERE option_name = "siteurl" 非常感谢!!!
    【解决方案2】:

    为了使接受的答案更完整,我建议大家运行以下 mysql 查询:

    UPDATE wp_posts SET guid = replace(guid, 'http://www.old-domain.com','http://www.new-domain.com');
    
    UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');
    
    UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl','http://www.newurl');
    

    以及已接受答案中给出的更改版本:

    UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    

    【讨论】:

      【解决方案3】:

      添加更多详细信息的答案。这对刚接触 MySQL 的人很有帮助。 从命令窗口访问 MySQL 的根目录。

       mysql -u root -p
      

      然后,选择你已经创建的数据库(wordpress 是我的数据库名):

      use wordpress
      

      接下来,执行命令:

      SELECT * FROM wp_options WHERE option_name = "siteurl";
      

      这将显示下表中的内容。

      最后,使用以下命令修改字段。

      UPDATE wp_options SET option_value = "http://your ip" WHERE option_name = "siteurl";
      

      【讨论】:

      • 太棒了!这应该被认为是最明确的解决方案。刚试了一下,效果就像一个魅力。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2012-09-30
      • 2023-03-28
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      相关资源
      最近更新 更多