2017-08-07 21 views
0

私はlogin formを作成し、私のウェブサイトのすべてのページにhttpsが必要です。HTTPS(Symfony3)が必要な場合、ログインフォームが動作しません

security.ymlは、次のようになります。

access_control: 
    #- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 

    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/logout, roles: ROLE_USER } 

それは動作しますが、私は最初の行のbeginnigから#記号を削除した場合、認証は動作を停止します。セキュリティシステムは要求をインターセプトしません。 access_controlには多くの行があるので、各ページに定義するのは難しいでしょう。

私の主な目標は、すべてのページにhttpsが必要です。各ページは、loginindex、および数えて

答えて

2

を除いて、ログインしているユーザーだけが利用できます。アクセスコントロールを読み取ると、呼び出されたルートに一致する最初のパスが使用されます。したがって、先に(すべてのルートに一致する)^/パスを定義した場合、SFはあなたのloginまたはlogoutアクセス制御を読み取れません。あなたのウェブサイトの完全なHTTPSを使用する場合はSee this part of cookbook

、私が入力したユーザーをリダイレクトするために、Apacheの設定をあなたのnginxを編集することをお勧めhttphttpsへ:

# example with nginx 
server { 
    listen 80; 
    server_name yourwebsite.com; 
    return  301 https://yourwebsite.com$request_uri; 
} 
関連する問題