2016-06-25 2 views
0

Привет У меня есть переписать правила для НТТР HTTPS и удалить .php расширение , но это отлично работает на НТТР HTTPS, но не работает .php расширение пожалуйста, проверьте, Что проблема в этомNginx .php переписать правила не работают

http { 

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    server_name servername; 
    return 301 https://sitename.com$request_uri; 

     location/{ 
     try_files $uri $uri/ @extensionless-php; 
    } 

    location ~ \.php$ { 
     try_files $uri =404; 
     ### OTHER CONFIGS ### 
    } 

    location @extensionless-php { 
     rewrite ^(.*)$ $1.php last; 
    } 
} 
} 
+0

Где серверный блок для 'https: // sitename.com'? –

+0

У меня есть домен для домена выше sitename свой пример –

+0

Я могу видеть серверный блок с 'listen 80' для' http', но где находится блок 'listen 443 ssl' server (для' https')? –

ответ

0

блок-сервер в вашем примере эквивалентно следующему:

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    server_name servername; 
    return 301 https://sitename.com$request_uri; 
} 

Все, что после того, как return утверждение фактически игнорируется. Серверный блок имеет единственную цель, которая должна перенаправить все от http до httpsнемодифицированный.

Если вам нужно перенаправить на https с измененным URL-адресом, вы можете использовать оператор rewrite ... permanent вместо инструкции return 301. См. this document.

+0

спасибо, но я спросил о расширении .php, чтобы удалить те, которые не работают –

Смежные вопросы