开发者 |
PeterUpfold
VanPattenMedia |
---|---|
更新时间 | 2012年3月28日 16:36 |
PHP版本: | 3.3.1 及以上 |
WordPress版本: | 3.3.1 |
FORCE_SSL_LOGIN
and FORCE_SSL_ADMIN
directives in wp-config.php
work great, but are too restrictive in situations where you have custom domains — custom domains for which you cannot have SSL certificates. For sites on custom domains, we need to make sure that the login and admin access happens over the subdomain, which can be properly served over HTTPS.
What this Plugin does (incorporating Foolish Assumptions)
or, a readme you should read before implementing this plugin on your site.
This plugin filters the login, logout, home and admin URLs that WordPress uses to generate its internal links.
Why do we do this?
The Scenario
We have a WordPress Multisite network. Let's call it mynetwork.com
. We bought a fancy SSL wildcard certificate so we can offer *.mynetwork.com
over a secure connection.
We’d very much like to use this secure connection for all logins, and for all admin access.
We also allow sites on this network to use a custom domain — like demo-site.com
. We might be using WPMU Domain Mapping to achieve this. These sites have two domains, then — demo-site.com
and demo-site.mynetwork.com
.
If we switch on FORCE_SSL_LOGIN
or FORCE_SSL_ADMIN
, we have a problem. When users go to https://demo-site.com/wp-login.php
, they get a certificate error. We have a wildcard certificate for *.mynetwork.com
, but we can’t possibly have a valid SSL certificate installed for every custom domain!
Instead, we want to force all login pages and admin pages to be:
https://demo-site.mynetwork.com/wp-admin/
…
We want all regular access to be:
http://demo-site.com/
…
This plugin facilitates that — rewriting the wp-login
(including logout) and wp-admin
URLs to the first example, and rewriting all the others to the second style.
Foolish Assumptions
This plugin makes some (foolish) assumptions about your multisite network. You must make sure that these assumptions are true for your site, or you will find that this plugin may have unintended consequences and break things that are difficult to fix without manually disabling the plugin.
a.b
wherea
is, for example:demo-site
.b
is, for example:mynetwork.com
.a
must be a single domain component. (a
can't be, for example:demo.site
)
*.mynetwork.com
www.mynetwork.com
, your wildcard cert will be fine. If it is just mynetwork.com
, you will need another cert to avoid errors when you go to https://mynetwork.com/wp-admin
.)
1. Your site already has the custom domains working.
FORCE_SSL_LOGIN
setting in wp-config.php
true.FORCE_SSL_ADMIN
setting in wp-config.php
false. We’ll handle that — WordPress’ forcing of SSL admins will conflict with this plugin.*.mynetwork.com
).FORCE_SSL_LOGIN
to true in wp-config.php
.ssl-subdomain-for-multisite.php
to your mu-plugins
folder.