如何在不同的子域上运行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 作为子域运行,另一个应用程序在主域上运行