【问题标题】:.htaccess redirect to ssl with laravel.htaccess 使用 laravel 重定向到 ssl
【发布时间】:2015-05-07 19:22:45
【问题描述】:

我正在尝试使用 .htaccess 在 laravel 的登录 url 上重定向到 ssl。

登录网址看起来像:four.number.for.ip/auth/login

如果我使用

RewriteCond %{SERVER_NAME} login
RewriteRule .* https://%{SERVER_NAME} [R=301,L]

它不起作用。我试过了

%{HTTPS} !=on 

它有效。 而且 %{SERVER_NAME} 返回 ip/auth/login (我很确定,因为 https!=on 有效)

我不明白为什么这不起作用。

【问题讨论】:

    标签: apache .htaccess redirect ssl


    【解决方案1】:

    这应该适合你。让我知道结果如何。

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/auth/login [NC]
    RewriteCond %{HTTPS} !^on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    编辑以给出完整的规则。它应该看起来像这样。

    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} ^/auth/login [NC]
    RewriteCond %{HTTPS} !^on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^ index.php [L] 
    

    【讨论】:

    • 这不起作用,就像在 laravel 中一样,%{REQUEST_URI} 只是“index.php”,但 %{HTTP_HOST} 是 ip/auth/login... 它应该与 SERVER_NAME 一起使用登录,但我似乎无法弄清楚如何做到这一点
    • 发布您的整个 htaccess,这样我就不必猜测您拥有什么了。
    • 这也应该放在 htaccess 文件的顶部。
    • Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] RewriteCond %{SERVER_NAME} login RewriteRule .* https:// %{SERVER_NAME} [R,L]
    • 我的意思是问题。但是我上面的规则不在之后。
    猜你喜欢
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多