範例腳本 nginx :
server { listen 443 default ssl; listen [::]:443 ssl; root /var/www/html/api_mobile/public; include snippets/ssl-params.conf; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index index.html index.php index.htm index.nginx-debian.html; server_name sitename.com; charset utf-8; location / { if ($scheme ="http") { # redirect all non api traffic to https block return 301 https://$server_name$request_uri; } try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } ssl_certificate /etc/letsencrypt/live/sites/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/site/privkey.pem; # managed by Certbot }
關於方案條件的要點:
if ($scheme ="http") { # redirect all non api traffic to https block return 301 https://$server_name$request_uri; }
它是在一個連接埠 443 https 上重定向的核心,強制 http 到 https
以上是Nginx 在 https 埠上強制 http 轉為 https的詳細內容。更多資訊請關注PHP中文網其他相關文章!