我需要通过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可以做到这一点吗?
答案 0 :(得分:1)
不太确定你是否看过这篇文章,但它对于基于SSL的Wordpress Admin来说非常全面。向下滚动到有关虚拟主机的部分,有关于将wp-admin设置为子域的信息。
答案 1 :(得分:1)
你有没有看过this thread?它是WordPress HTTPS插件上的mod。
答案 2 :(得分:0)
如果您使用Apache通过SSL提供服务,请查看mod_proxy。
使用它,您可以透明地将所有请求从https://secure.mysite.com/blog/
重定向到http://www.mysite.com/blog/
。
答案 3 :(得分:0)
插件http://wordpress.org/extend/plugins/admin-ssl-secure-admin/正是我所追求的。
不幸的是,它在较新的Wordpress版本上被破坏了:(
答案 4 :(得分:0)
使用纯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/