What's the best way to set up nginx conf to force https on the index.php page only and every other page be forced to http.
thanks
What's the best way to set up nginx conf to force https on the index.php page only and every other page be forced to http.
thanks
Try something like this should come close to working. I haven't tested it so there could be typos, but it should at least give you some guidance.
# You might address PHP some other way
upstream php {
server 127.0.0.1:9001;
}
server {
server_name www.example.com example.com;
listen 443 ssl http2;
ssl_certificate /path/fullchain;
ssl_certificate_key /path/privkey;
# the index.php?$args is for wordpress, you can remove it
try_files $uri $uri/ /index.php?$args;
# Single URL
location = /index.php {
# plus other PHP settings and parameters
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Every other URL
location / {
return 301 http://www.example.com$request_uri;
}
# Run PHP scripts
location ~ \.php$ {
# plus other PHP settings and parameters
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# Insecure server
server {
server_name www.example.com example.com;
listen 80 default_server;
# the index.php?$args is for wordpress, you can remove it
try_files $uri $uri/ /index.php?$args;
location = /index.php {
return 301 https://www.example.com/index.php;
}
location / {
root /var/www/site;
}
location ~ \.php$ {
# plus other PHP settings and parameters
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}