2016-09-01 14 views
1

Ich möchte folgende Apache-Konfiguration in Nginx kompatible Konfig konvertieren.Konvertieren Apache RewriteCond zu Nginx

Was es derzeit tut ist Umleitung aller Verkehr, der nicht enthält ^/Nexus/Inhalt * in URI zu HTTPS. Das heißt, selbst wenn ich nur auf http: // example.com/nexus zugreife, sollte es zu HTTPS gehen.

Unter dem Strich möchte ich http: // example.com/nexus/content* in HTTP behalten aber http: // example.com/nexus sollte zu HTTPS umleiten. Hoffe, die Frage ist klar :)

Ich habe versucht, folgende Nginx-Konfigurationen, aber bisher nicht funktioniert. Schätze jede Hilfe.

if ($request_uri != ^/nexus/content*) { 
    rewrite (.*) https://example.com$request_uri; 
} 

Und

location ~ ^/nexus/content* { 
} 

location/{ 
    rewrite ^(.*)$ https://$http_host$request_uri redirect; 
} 

Antwort

1

Ich bin mir nicht sicher, ob dies funktionieren wird, aber hier geht:

server { 
     listen   80; 
     server_name example.com; 
     if ($request_uri !~ "^/nexus/content*") { 
      return  301 https://$server_name$request_uri; 
     } 
} 

server { 
     listen   443 ssl; 
     server_name example.com; 
     add_header Strict-Transport-Security "max-age=31536000"; # MiTM Mitigation 
     // your normal rules here 
} 

ähnlich wie bei Ihnen, aber es hat eine Umleitung und nicht neu geschrieben.

+0

Dank Burhan. Es hat einfach wie erwartet funktioniert! : D –