www.example.com/shop/*目录中启用ssl并禁用其他?
原有的conf文件:
# Redirect everything to the main site. server { server_name *.example.com; listen 80; ssl on; ssl_certificate /opt/nginx/conf/server.crt; ssl_certificate_key /opt/nginx/conf/server.key; keepalive_timeout 70; access_log /home/example/nginx_logs/access.log ; error_log /home/example/nginx_logs/error.log ; root /home/example/public_html/example.com; location ~ \.php${ try_files $uri $uri/ /index.php?q=$uri&$args; root /home/example/public_html/example.com/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /opt/nginx/conf/fastcgi_params; #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME /home/example/public_html/example.com$fastcgi_script_name; index index.php index.html index.htm; } if ($http_host != "example.com") { rewrite ^ http://example.com$request_uri permanent; } include global/restrictions.conf; # Additional rules go here. #Only include one of the files below. include global/wordpress.conf; # include global/wordpress-ms-subdir.conf; # include global/wordpress-ms-subdomain.conf; }
在Nginx中很容易实现.它涉及两个步骤。
>只有访问yourdomain.com/shop时才会使用端口443.所有其他请求将被重定向到端口80(HTTP)
> 80端口将检查yourdomain.com/shop.如果找到,它将被重定向到端口443(HTTPS).
以下是如何完成的快速概述……
server { listen 443; server_name yourdomain.com; # directives for SSL certificates # root, index, error_log, access_log directives location /shop { # directives to handle what's inside /shop, for example # try_files $uri $uri/ /index.php; } location ~ \.php${ # directives to handle PHP files } # leave everything else to port 80 location / { rewrite ^ http://$host$request_uri permanent; } } server { listen 80; server_name yourdomain.com; # root, index, error_log, access_log directives # redirect yourdomain.com/shop to port 443 # Please put this before location / block as # nginx stops after seeing the first match location /shop { rewrite ^ https://$host$request_uri permanent; } location / { # directives to handle what's inside /, for example # try_files $uri $uri/ /index.php; } location ~ \.php${ # directives to handle PHP files } }