代码之家  ›  专栏  ›  技术社区  ›  CoffeeMonster

如何在不同的子域上运行wordpress admin?

  •  9
  • CoffeeMonster  · 技术社区  · 16 年前

    我有通过https运行wordpress管理的要求。 我们使用一个cdn为站点提供缓存内容,但是cdn不能接受安全流量(每个IP只允许一个ssl证书,并且我们在它之外运行多个站点)。我无法控制重定向 httpS://www.mysite.com/.

    我想要:

    http://www.mysite.com/blog/
    httpS://secure.mysite.com/blog/wp-admin/
    httpS://secure.mysite.com/blog/wp-login.php
    

    我试着按照文章中的建议重写URL。 http://codex.wordpress.org/Administration_Over_SSL#Virtual_Hosts .

    假设您可以使用具有不同名称的主机,例如wpadmin.mysite.com

    不幸的是,按建议尝试仍会将我发送到 httpS://www.mysite.com/blog/login.php .

    # No matter what it redirects to the wrong subdomain for login.php
    http://www.mysite.com/blog/wp-admin/
    -> httpS://secure.mysite.com/blog/wp-admin/
    -> httpS://www.mysite.com/blog/wp-login.php.
    

    当直接访问CSS文件时,仍然链接到错误的URL(.)。

    简单的解决办法就是把博客关掉 http://blog.mysite.com/blog/ . 不幸的是,由于搜索引擎优化的原因,这已经被尝试并决定反对。

    WordPress还能做到吗?

    5 回复  |  直到 10 年前
        1
  •  1
  •   Gaia    14 年前

    你查过了吗 this thread ?它是一个在 WordPress HTTPS 插件。

        2
  •  1
  •   Stoosh    16 年前

    不太确定您是否看过这篇文章,但是当涉及到通过SSL的WordPress管理时,它是相当全面的。向下滚动到有关虚拟主机的部分,这里有关于将wp admin设置为子域的信息。

    http://codex.wordpress.org/Administration_Over_SSL

        3
  •  0
  •   sanmai    16 年前

    如果您正在使用Apache通过SSL提供服务,请查看 mod_proxy .

    使用它,您可以透明地重定向来自 https://secure.mysite.com/blog/ 到 http://www.mysite.com/blog/ .

        4
  •  0
  •   CoffeeMonster    15 年前

    插件 http://wordpress.org/extend/plugins/admin-ssl-secure-admin/ 正是我想要的。

    不幸的是,它在更新的WordPress版本上被破坏了:(

        5
  •  0
  •   Kristofer    10 年前

    启用管理员访问 http://blog.example.com 通过 https://ssl.example.com/wp-admins/blog/wp-login.php 有了纯Apache配置,您就不需要依赖于WordPress插件和更新了…

    …在https apache虚拟主机上使用mod_proxy来转发流量,确保proxyReserveHost已关闭,以便将proxy语句中的主机名发送到wordpress服务器。然后使用mod_替换(确保打开它)来修复WordPress返回的断开链接。

    <Location /wp-admins/blog/>
    
      AddOutputFilterByType SUBSTITUTE text/html
      AddOutputFilterByType SUBSTITUTE text/css
      AddOutputFilterByType SUBSTITUTE application/javascript
      AddOutputFilterByType SUBSTITUTE application/json
      Substitute "s|http://blog.example.com|https://ssl.example.com/wp-admins/blog|i"
      Substitute "s|blog.example.com\\\/|blog.example.com\\/wp-admins\\/blog\\/|i"
      Substitute "s|'/wp-admin|'/wp-admins/blog/wp-admin|i"
      Substitute "s|\"/wp-admin|\"/wp-admins/blog/wp-admin|i"
      Substitute "s|'/wp-includes|'/wp-admins/blog/wp-includes|i"
      ProxyPassReverseCookiePath / /wp-admins/blog/
    
    </Location>
    
    ProxyPass /wp-admins/blog/ http://blog.example.com/
    ProxyPassReverse /wp-admins/blog/ http://blog.example.com/
    

    要使反向代理正常工作,需要指定承载blog.example.com的服务器的内部IP。即使上游服务器(10.0.0.4)具有多个基于名称的虚拟主机,此解决方案也可以确保这一点。

    10.0.0.4 blog.example.com
    

    有关详细信息,请参阅:

    http://tec.libertar.se/how-to-host-wordpress-admin-on-a-seperate-domain-and-subfolder/

    推荐文章