2010-07-29 3 views
9

J'ai l'exigence d'exécuter l'admin Wordpress sur https. Nous utilisons un cdn pour fournir du contenu mis en cache pour le site, mais le cdn ne peut pas accepter le trafic sécurisé (un seul certificat SSL par IP est autorisé, et nous en exécutons plusieurs). Je ne peux pas contrôler pour réoriente httpS://www.mysite.com/.Comment faire pour exécuter l'admin Wordpress sur un sous-domaine différent?

Je voudrais avoir:

http://www.mysite.com/blog/ 
httpS://secure.mysite.com/blog/wp-admin/ 
httpS://secure.mysite.com/blog/wp-login.php 

J'ai essayé de réécrire les urls comme suggéré dans l'article http://codex.wordpress.org/Administration_Over_SSL#Virtual_Hosts.

Hypothétiquement, vous pouvez utiliser un hôte avec un nom différent, comme wpadmin.mysite.com

Malheureusement essayer cela comme suggéré me envoie encore 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. 

également en allant directement aux fichiers css lien encore à la mauvaise URL (.)

La solution simple aurait été d'exécuter le blog de http://blog.mysite.com/blog/. Malheureusement ceci a été essayé et a été décidé contre pour des raisons de SEO.

Est-ce que Wordpress peut faire cela?

+0

Si je me souviens bien, WP a une entrée db que les noms du domaine où le panneau d'administration devrait être, et il vous redirigera vers ce domaine lorsque vous vous connectez et accédez au panneau d'administration. Lors de l'exécution d'une instance de test, il peut être très pénible de les garder droits. –

Répondre

1

Avez-vous étudié this thread? Il est un mod sur le plugin WordPress HTTPS.

+0

A eu le temps d'essayer ce plugin aujourd'hui et il (wordpress-https v2.0.4 pour wordpress v3.3.1) fonctionne exactement comme je veux! Merci d'avoir regardé un vieux fil. – CoffeeMonster

1

Vous ne savez pas trop si vous avez vu cet article, mais il est assez complet quand il s'agit de Wordpress Admin sur SSL. Faites défiler jusqu'à la partie sur les hôtes virtuels, et il y a des informations sur la configuration de l'administrateur wp en tant que sous-domaine.

http://codex.wordpress.org/Administration_Over_SSL

+0

Yep - J'ai essayé ça. J'ai mis à jour la question pour refléter le problème que j'ai avec login.php. – CoffeeMonster

0

Si vous utilisez Apache pour servir sur SSL, regardez dans mod_proxy. En l'utilisant, vous pouvez rediriger de manière transparente toutes les demandes de https://secure.mysite.com/blog/ à http://www.mysite.com/blog/.

+0

Je suis déjà en train de lancer mod_proxy et de faire exactement cela. Malheureusement wordpress force les URLs à 'https: // www.mysite.com /'. – CoffeeMonster

+0

Vérifiez dans la directive 'ProxyPreserveHost'. Vous devez l'activer. Après cela, vous devez ajouter 'ServerAlias ​​secure.mysite.com' à la configuration WP vhost. En dernier recours, vous pouvez pirater WP pour faire ce dont vous avez besoin. Googling révèle un certain nombre de HOWTOs. – sanmai

0

Pour activer l'accès admin http://blog.example.com par https://ssl.example.com/wp-admins/blog/wp-login.php avec config Apache pur et vous ne pas dépendre des plugins Wordpress et des mises à jour que vous voudrez ...

... utiliser mod_proxy sur un hôte virtuel HTTPS apache pour transférer le trafic, assurez-vous que ProxyPreserveHost est désactivé afin que les noms d'hôte dans les instructions proxy soient envoyés gh au serveur wordpress. Ensuite, mod_substitute est utilisé (assurez-vous de l'activer) pour réparer les liens brisés qui reviennent de 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/ 

Pour que le proxy inverse fonctionne, vous devez spécifier l'adresse IP interne du serveur hébergeant blog.example.com. Cette solution garantit que cela fonctionnera même si le serveur en amont (10.0.0.4) a plusieurs hôtes virtuels basés sur le nom.

10.0.0.4 blog.example.com 

Pour plus de détails, voir:

http://tec.libertar.se/how-to-host-wordpress-admin-on-a-seperate-domain-and-subfolder/