Задача такая: где встречается CMS, должно перекидывать на https протокол, а везде где не встречается CMS, должно перекидывать на обычный.
При CMS перекидывает, а обратно не срабатывает. Срабатывает только на директориях, а на PHP файлах не срабатывает.
К примеру
https://site1.ru/subfolder/ - перекидывает на
site1.ru/subfolder
А так
https://site1.ru/subfolder/file.php нет
server {
listen 80;
server_name site1.net www.site1.net;
# Папка с контентом сайта
root /var/www/site1/;
access_log /var/log/nginx/site1-access.log;
error_log /var/log/nginx/site1-error.log;
location ~* ^/cms/(.*)/$ {
rewrite ^ https://$server_name$request_uri? permanent;
}
rewrite ^([^.\?]*[^/])$ $1/;
include /etc/nginx/templates/default;
include /etc/nginx/templates/php;
}
server {
listen 443 ssl;
ssl on;
ssl_protocols SSLv3 TLSv1;
ssl_certificate /etc/nginx/ssl/ssl_site1.crt;
ssl_certificate_key /etc/nginx/ssl/ssl_site1.key;
server_name site1.net www.site1.net;
# Папка с контентом сайта
root /var/www/site1/;
access_log /var/log/nginx/ssl_site1-access.log;
error_log /var/log/nginx/ssl_site1-error.log;
location ~* ^/cms/(.*)/$ {
try_files $uri /cms/index.php?q=$1&$query_string;
}
rewrite ^([^.\?]*[^/])$ $1/;
location / {
return 301 http://$server_name$request_uri;
}
include /etc/nginx/templates/default;
include /etc/nginx/templates/php;
}
Что не так делаю?
Update:
Конфиг templates/php:
# Передаём обработку PHP-скриптов PHP-FPM
location ~ \.php$ {
#try_files $uri =404;
error_page 404 /404.htm;
fastcgi_pass unix:/tmp/wwwpool.sock;
fastcgi_cache one;
fastcgi_cache_min_uses 5;
fastcgi_cache_valid 200 301 302 304 5m;
fastcgi_cache_key "$request_method|$host|$request_uri";
fastcgi_index index.php;
fastcgi_intercept_errors on; # только на период тестирования
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_ignore_client_abort off;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}