如何在不同的子域上运行Wordpress管理员?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不同的子域上运行Wordpress管理员?相关的知识,希望对你有一定的参考价值。

我需要通过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

我尝试重写网页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/上运行博客。不幸的是,这已经尝试过,并且因为SEO的原因而决定反对。

无论如何Wordpress可以做到这一点吗?

答案

你看过this thread吗?它是WordPress HTTPS插件的mod。

另一答案

如果你看过这篇文章还不太确定,但是对于基于SSL的Wordpress Admin来说它非常全面。向下滚动到有关虚拟主机的部分,有关于将wp-admin设置为子域的信息。

http://codex.wordpress.org/Administration_Over_SSL

另一答案

如果您使用Apache来提供SSL服务,请查看mod_proxy

使用它,您可以透明地将所有请求从https://secure.mysite.com/blog/重定向到http://www.mysite.com/blog/

另一答案

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

不幸的是它打破了较新的Wordpress版本:(

另一答案

通过使用纯Apache配置的http://blog.example.com启用https://ssl.example.com/wp-admins/blog/wp-login.php的管理员访问权限,这样您就不必依赖Wordpress插件和更新了...

...在HTTPS apache虚拟主机上使用mod_proxy转发流量,确保ProxyPreserveHost为Off,以便将代理语句中的主机名发送到wordpress服务器。然后使用mod_substitute(确保打开它)来修复从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/

以上是关于如何在不同的子域上运行Wordpress管理员?的主要内容,如果未能解决你的问题,请参考以下文章

Nginx - 将 Wordpress 作为子域运行,另一个应用程序在主域上运行

如何将我的 wordpress 博客集成到我的子域中?

从 wordpress 触发 laravel 事件

wordpress.com 和其他类似服务如何立即创建子域,即立即可用?

如何部署林根域子域和域

根目录中的 Wordpress htaccess 覆盖子域中的 htaccess。子域应用程序现在无法运行