2010-07-29 119 views
9

我有要求通过https运行WordPress的管理员。 我们使用cdn为网站提供缓存的内容,但cdn无法接受安全流量(每个IP只允许一个SSL证书,并且我们运行多个站点)。我无法控制的重新导向httpS://www.mysite.com/.如何在不同的子域上运行WordPress的管理员?

我想有:

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/。不幸的是,这已经尝试过,并因为SEO原因而被决定。

有没有反正Wordpress可以做到这一点?

+0

如果我没有记错,WP具有分贝条目名,其中管理面板预计域,它会将您重定向到当您登录并进入管理面板时该域名。运行测试实例时,让它们保持直线可能是一件非常痛苦的事情。 – 2010-11-04 18:46:41

回答

1

你有没有看着this thread坏了吗?这是在WordPress HTTPS插件国防部。

+0

有时间给这个插件今天试一试,它(wordpress-https v2.0.3 for wordpress v3.3.1)完全按照我的意愿工作!感谢您观看旧线索。 – CoffeeMonster 2012-03-21 21:48:27

1

不太确定您是否看过这篇文章,但对于基于SSL的WordPress管理员来说,它非常全面。向下滚动到关于虚拟主机的部分,并且有关于将wp-admin设置为子域的信息。

http://codex.wordpress.org/Administration_Over_SSL

+0

是的 - 我试过了。我已经更新了这个问题,以反映我在login.php中遇到的问题。 – CoffeeMonster 2010-08-06 17:46:07

0

如果你使用Apache服务通过SSL,看看mod_proxy

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

+0

我已经在运行mod_proxy并正在做这件事。不幸的是,wordpress迫使你的网站“https:// www.mysite.com /'。 – CoffeeMonster 2010-08-06 17:48:11

+0

签入'ProxyPreserveHost'指令。你需要打开它。之后,您需要将'ServerAlias secure.mysite.com'添加到WP vhost配置中。 作为最后的手段,你可以破解WP做你需要的东西。谷歌搜索显示了一些HOWTO。 – sanmai 2010-08-09 01:05:14

0

要启用http://blog.example.com管理权限通过https://ssl.example.com/wp-admins/blog/wp-login.php纯Apache配置,所以你没有依赖WordPress的插件和更新你可能想...

...使用mod_proxy HTTPS apache虚拟主机转发流量,确保ProxyPreserveHost关闭,以便代理语句中的主机名发送通过呃到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/

相关问题