2016-06-25 32 views
0

こんにちは私はHTTPからHTTPSへのために書き換えルールを持っていると拡張子 確認してくださいhttpをhttpsにするための拡張 が、この作品の罰金を.PHP除去するが.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

私はサイト名の上にドメイン名を変更しました –

+0

'http'の' listen 80'を見ることはできますが 'https'の' listen 443 ssl'サーバブロックはどこですか? –

答えて

0

あなたの例では、サーバのブロックがこれに相当しますreturn文の後

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

すべてが事実上無視されます。サーバーブロックには、httpからhttpsに変更されていないのすべてをリダイレクトするという目的が1つあります。

URLを変更してhttpsにリダイレクトする必要がある場合は、return 301ステートメントの代わりにrewrite ... permanentステートメントを使用できます。詳細は、this documentを参照してください。

+0

ありがとう、しかし、私は.phpの拡張機能について質問しました。 –

関連する問題