Mhhh, it’s very tricky to debug.
I’m quite sure it has something to do with how WP Multisite, Domain Mappings and HTTPS are playing together. Let me give you some more details on the setup:
Nginx:
server {
listen 80;
listen 443 ssl;
server_name blog.example.org team.example.org;
ssl_certificate /etc/ssl/startssl/blog.example.org.crt;
ssl_certificate_key /etc/ssl/startssl/blog.example.org.key;
root /var/www/blog.example.org;
index index.php;
location / {
root /var/www/blog.example.org;
index index.php;
try_files $uri/ $uri /index.php?q=$uri&&$args;
port_in_redirect off;
}
# php via fastcgi
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param HTTPS on;
include "fastcgi_params";
fastcgi_pass unix:/var/run/php-fastcgi.sock;
}
# wordpress permalink rewrite
if (-f $request_filename) {
break;
}
# uploaded files -> wp-includes/ms-files.php
rewrite /files/$ /index.php last;
if ($uri !~ wp-content/plugins) {
rewrite /files/(.+)$ /wp-includes/ms-files.php?file=$1 last;
}
}
Relevant entries in wp-config.php:
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define('WPLANG', '');
define('WP_DEBUG', false);
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'blog.example.org');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define('SUNRISE', true);
WP HTTPS Config in blog.example.org: https://imgur.com/wV4CO
WP HTTPS Config in team.blog.example.org: https://imgur.com/VImRw
Activated in Domain Mapping Settings:
[X] User domain mapping page, [X] Redirect administration pages to site’s original domain (remote login disabled if this redirect is disabled)
Primary Domain for the team.blog.example.org subsite is team.example.org
So, with this setup, everything works fine. The subsite dashboard redirects to https://team.blog.example.org/wp-admin/ like it should, too. The only thing not working is this:
curl -I -k “https://team.example.org/2012/07/01/test-foo/”
HTTP/1.1 200 OK
Date: Fri, 20 Jul 2012 08:27:45 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Pingback: https://team.example.org/xmlrpc.php
Set-Cookie: redirect_count=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
Link: <https://team.example.org/?p=2544>; rel=shortlink
where it should redirect like on the parent blog.example.org.
I hope this narrows it down a bit?