2014-01-31 3 views
0

У меня возникли трудное время, пытаясь добавить безопасность сайта, В основном я хочу, чтобы то, что в директории должен:аутентификации Nginx и перенаправлять HTTPS

1) be redirected to https if http 
2) be under HttpAuthBasicModule 

по некоторым причинам я могу получить Auth работать, но это не перенаправление на HTTPS для определенных URL-адресов, таких как /index.php, но это делает для некоторых других файлов:

/revive/www/admin/assets/images/login-welcome.gif works 
/revive/www/admin/index.php remains under port 80 

это соответствующая часть моего файла конфигурации Nginx

location ^~ /revive/www/admin { 

    if ($server_port = 80) { 
     rewrite^https://$host$request_uri permanent; 
    } 

    auth_basic   "Restricted"; 
    auth_basic_user_file htpasswd_revive; 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass 127.0.0.1:9001; 
     fastcgi_param PHP_VALUE "newrelic.appname=revive.host.com"; 
     fastcgi_index index.php; 
     include fastcgi_params; 
    } 
} 

Как я могу убедиться, что все под/revive/www/admin перенаправлено на порт 443, если он вызван на порт 80? любая помощь будет принята с благодарностью!

ответ

0

оказывается, что это, кажется, работает, если я делаю это:

location ^~ /revive/www/admin { 

    if ($server_port = 80) { 
     rewrite^https://$host$request_uri permanent; 
    } 

    auth_basic   "Restricted"; 
    auth_basic_user_file htpasswd_revive; 

    location ~ \.php$ { 

     if ($server_port = 80) { 
      rewrite^https://$host$request_uri permanent; 
     } 

     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass 127.0.0.1:9001; 
     fastcgi_param PHP_VALUE "newrelic.appname=revive.host.com"; 
     fastcgi_index index.php; 
     include fastcgi_params; 
    } 
} 
1

положить правила сервера только «слушать 443» и добавить следующее правило ниже:

server { 
    listen 80; 
    server_name mysite.com; 
    rewrite^https://$server_name$request_uri? permanent; 
} 
+0

несчастию я могу» t сделать это, потому что я хочу перенаправить на https только этот специальный url, остальная часть сайта проксирована лаком – sathia

+0

Я не вижу причин, почему это невозможно сделать, вы уже делаете это, но хуже метод, используя 'if' –

Смежные вопросы