我想将以下Apache配置转换为Nginx兼容配置。
它目前所做的是将所有在uri中包含^ / nexus / content *的流量重定向到HTTPS。这意味着即使我只访问http:// example.com/nexus,它也应该转到HTTPS。
底线是我想在HTTP中保持http:// example.com/nexus/content*但是http:// example.com/nexus应该重定向到HTTPS。希望问题很清楚:)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/nexus/content*
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我试过跟随Nginx配置,但到目前为止还没有工作。感谢任何帮助。
if ($request_uri != ^/nexus/content*) {
rewrite (.*) https://example.com$request_uri;
}
和
location ~ ^/nexus/content* {
}
location / {
rewrite ^(.*)$ https://$http_host$request_uri redirect;
}
答案 0 :(得分:1)
我不确定这是否有效,但是这里有:
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
}
与您的相似,但它会重定向而不是重写。