My site's been running fine on nginx for years. Have SSL and non-SSL locations. PHP runs through .shtml files
Working on a Facebook app and right now need to have it work with both the SSL and non-SSL URL. Testing the coding on my server right now. I can't get it to work in the SSL config.
If I go to http://www.example.com/myappsname the page loads.
https://www.example.com/myappsname/index.shtml the page loads. <-note https
https://www.example.com/myappsname/ the page tosses a 404
Here are the relevant locations in the SSL server section:
location / {
root /usr/local/apache/htdocs;
rewrite ^(.+) http://www.example.com$1 permanent;
index index.shtml index.php;
}
location ~ \.(shtml|php|inc)$ {
root /usr/local/apache/htdocs;
include /usr/local/nginx/conf/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:10004;
}
location ^~ /myappsname/ {
index index.shtml;
root /usr/local/apache/htdocs/;
fastcgi_intercept_errors on;
include /usr/local/nginx/conf/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:10004;
fastcgi_param HTTPS on;
}
I'll probably smack my head when this is pointed out to me. All my other SSL locations work fine. Any idea why including the filename stays SSL but dropping it redirects?
With the config that you've provided,
https://www.example.com/myappsname/
does not redirect, however,https://www.example.com/myappsname
does, as it doesn't match the prefix search oflocation ^~ /myappsname/
.Your description uses a trailing slash for the HTTPS URL, but none on the HTTP URL - I'm guessing that this isn't quite accurate, and that you're seeing the redirect improperly occurring only when the trailing slash is absent from the HTTPS URL.
If this is the case, fix your prefix match - drop the trailing slash, or just set up a
location = /myappsname
?