Перенаправить http на https с помощью nginx и переписать правило дает переадресацию

Я хочу перенаправить http на https вместе с

rewrite ^(.*)$ /$1.php;

Мой виртуальный файл nginx:

server {
   listen         80;
   server_name    domain.com;
   return         301 https://$server_name$request_uri;
}

server {
   listen         443 ssl;
   server_name    domain.com;
   root /var/nginx/html;

   ssl_certificate /home/domain.crt
   ssl_certificate_key /home/domain.key

   location / {
            if (!-e $request_filename){
                    rewrite ^(.*)$ /$1.php;
            }
            try_files $uri $uri/ /index.html;
   }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/www;
    }

    # pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm$
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$
            include fastcgi_params;

    }

}

... но это дает мне цикл переадресации. Может кто-нибудь указать мне, что я делаю неправильно?

2 голоса | спросил Deep S. 30 PM00000070000001831 2015, 19:39:18

1 ответ


1
if (!-e $request_filename){
    rewrite ^(.*)$ /$1.php;
}
try_files $uri $uri/ /index.html;

Что произойдет, если /$1.php тоже не существует? К сожалению, я не эксперт по Nginx, но на Apache этот вид перезаписи может привести к циклу перезаписи (вам нужно будет проверить, существует ли файл перед его переписыванием).

Если это не переписать, используя только try_files ...? Например:

try_files $uri $url.php $uri/ /index.html;
ответил MrWhite 31 AM000000120000000131 2015, 00:31:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132