# Wordpress Secure Login Redirect

**URL:** <https://www.ruby-forum.com/t/wordpress-secure-login-redirect/209878>\
**Category:** NGINX\
**Created:** [July 25, 2011, 4:15pm UTC](https://www.ruby-forum.com/t/wordpress-secure-login-redirect/209878 "2011-07-25T16:15:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [July 25, 2011, 4:15pm UTC](https://www.ruby-forum.com/t/wordpress-secure-login-redirect/209878/1 "2011-07-25T16:15:33Z")

</div>

Hi. I wanted to enable ssl on nginx for using to login to wordpress and  
the admin panel.

I have a ssl certifcate that uses [secure.DOMAIN.com](http://secure.DOMAIN.com). My Wordpress  
configuration is with Network enabled.  
[Create A Network « WordPress Codex](http://codex.wordpress.org/Create_A_Network#Apache_Virtual_Hosts_and_Mod_Rewrite).

The website works like this:

[www.DOMAIN.com](http://www.DOMAIN.com) (Main blog, points to others blogs)  
[subdomain1.DOMAIN.com](http://subdomain1.DOMAIN.com) (blog 1)  
[sub2.DOMAIN.com](http://sub2.DOMAIN.com) (blog 2)

What I want to force is a secure SSL connection for login in and  
administration for each subdomain.  
[http://codex.wordpress.org/Administration\_Over\_SSL](http://codex.wordpress.org/Administration_Over_SSL)

How do I change the configuration in nginx to work like that?

Here is my current nginx.conf and website.conf files.

nginx.conf file:

user nginx;  
worker\_processes 1;

error\_log /var/log/nginx/error.log;  
#error\_log /var/log/nginx/error.log notice;  
#error\_log /var/log/nginx/error.log info;

pid /var/run/nginx.pid;

events {  
worker\_connections 1024;  
}

http {  
include /etc/nginx/mime.types;  
default\_type application/octet-stream;

```
log_format main '$remote_addr - $remote_user [$time_local]

```

“$request” ’  
'$status $body\_bytes\_sent “$http\_referer” ’  
‘“$http\_user\_agent” “$http\_x\_forwarded\_for”’;

```
access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush off;
tcp_nodelay on;
keepalive_timeout 30;
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 12M;
large_client_header_buffers 2 1k;

gzip on;
gzip_comp_level 2;
gzip_http_version 1.1;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css image/x-icon image/png image/jpg

```

image/jpeg text/js text/php application/xhtml application/xhtml+xml;  
gzip\_buffers 16 8k;  
gzip\_disable “MSIE [1-6].(?!.\*SV1)”;

```
include /etc/nginx/conf.d/*.conf;

```

}

website.conf file:  
server {  
server\_name [www.domain.com](http://www.domain.com) [secure.domain.com](http://secure.domain.com) \*.domain.com;

root /www/domain.com;

index index.php index.html;

error\_page 404 = @wordpress;  
log\_not\_found off;

location ^~ /files/ {  
rewrite /files/(.+) /wp-includes/ms-files.php?file=$1 last;  
}  
location @wordpress {  
fastcgi\_pass 127.0.0.1:9000;  
fastcgi\_param SCRIPT\_FILENAME $document\_root/index.php;  
include fastcgi\_params;  
fastcgi\_param SCRIPT\_NAME /index.php;  
}

# Rewrite minified CSS and JS files

```
rewrite

```

^/wp-content/w3tc/min/([a-f0-9]+)/(.+).(include(-(footer|body))?(-nb)?).[0-9]+.(css|js)$  
/wp-content/w3tc/min/index.php?tt=$1&gg=$2&g=$3&t=$7 last;

```
set $cache_uri $request_uri;

if ($request_method = POST) {
    set $cache_uri 'no cache';
}
if ($query_string != "") {
    set $cache_uri 'no cache';
}

if ($request_uri ~*

```

“(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.\*.php|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php)”)  
{  
set $cache\_uri “no cache”;  
}

```
if ($http_cookie ~*

```

“comment\_author|wordpress\_[a-f0-9]+|wp-postpass|wordpress\_logged\_in”)  
{  
set $cache\_uri ‘no cache’;  
}

```
location / {
    try_files /wp-content/w3tc/pgcache/$cache_uri/_index.html $uri

```

$uri/ /index.php;  
}

```
location ~*

```

.(xml|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$  
{  
try\_files $uri =404;  
expires max;  
access\_log off;  
}

```
location ~* /\.ht {
    deny all;
    access_log off;
    log_not_found off;
}

```

location ~ .php$ {  
try\_files $uri @wordpress;  
fastcgi\_index index.php;  
fastcgi\_pass 127.0.0.1:9000;  
fastcgi\_param SCRIPT\_FILENAME $document\_root$fastcgi\_script\_name;  
include fastcgi\_params;  
}  
location ^~ /blogs.dir/ {  
internal;  
root /home/domain.com/wp-content;  
}  
}

server {  
listen 443;  
server\_name [www.domain.com](http://www.domain.com) [secure.domain.com](http://secure.domain.com) \*.domain.com;

ssl on;  
ssl\_certificate /etc/ssl/domain\_com/domain\_com.crt;  
ssl\_certificate\_key /etc/ssl/domain\_com/domain\_com.key;

ssl\_session\_timeout 5m;

ssl\_protocols SSLv2 SSLv3 TLSv1;  
ssl\_ciphers  
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;  
ssl\_prefer\_server\_ciphers on;

location / {  
root html;  
index index.html index.htm;  
}  
}

Posted at Nginx Forum:

> **[Wordpress Secure Login Redirect](https://forum.nginx.org/read.php?2,212916,212916#msg-212916)**
>
> Hi. I wanted to enable ssl on nginx for using to login to wordpress and the admin panel. I have a ssl certifcate that uses secure.DOMAIN.com. My Wordpress configuration is with Network enabled....

---

<div class="post-metadata">

**Author:** ![genarg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/9de053/32.png) [@genarg](https://www.ruby-forum.com/u/genarg)\
**Post date:** [July 31, 2011, 8:24pm UTC](https://www.ruby-forum.com/t/wordpress-secure-login-redirect/209878/2 "2011-07-31T20:24:48Z")

</div>

anyone?

Posted at Nginx Forum:

> **[Re: Wordpress Secure Login Redirect](https://forum.nginx.org/read.php?2,212916,213149#msg-213149)**
>
> Hi. I wanted to enable ssl on nginx for using to login to wordpress and the admin panel. I have a ssl certifcate that uses secure.DOMAIN.com. My Wordpress configuration is with Network enabled....
