【问题标题】:How to ignore https if its localhost?如果它的本地主机,如何忽略 https?
【发布时间】:2017-09-07 20:24:39
【问题描述】:

我实际上知道如何强制重定向到 https 或 http(如果它是本地的),如下所示:

security.yml

 ...
 - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http, host: localhost$ }
 - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
 ...

但问题是,我有很多重定向。

有没有简单的方法可以忽略 localhost 的 https?我在 symfony 主页或谷歌上找不到任何东西。

或者是下面这样的可能吗?

- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https, host:!localhost$}

是否可以忽略主机?

【问题讨论】:

  • 我知道这不是您要寻找的答案,但您可以在开发环境中使用另一个 security.yml,或者只是将整个站点重定向到服务器级别的生产环境中的 https(Apache、nginx , ...) 这样每个涉及您的 PHP 应用程序的请求始终通过 HTTPS 提供服务,并且您不需要 security.yml 中的那些防火墙规则

标签: symfony yaml symfony-3.3


【解决方案1】:

尝试修改.htaccess文件并使用server_name检查是否为localhost:

RewriteEngine On

RewriteCond %{HTTPS} ==on

RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ app.php [QSA,L]

检查示例herehere

【讨论】:

  • 谢谢,但我已经知道如何使用 .htaccess。我必须在 security.yml 中解决它
猜你喜欢
  • 2014-11-30
  • 1970-01-01
  • 2020-02-10
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多