【问题标题】:Redirect from secure https to http for only one page仅一页从安全 https 重定向到 http
【发布时间】:2012-12-26 21:20:31
【问题描述】:

我有一个页面page.php,如果通过https 访问,我需要将其重定向到http,否则我的谷歌广告将不会显示。

确切地说,我希望发生以下情况:

https://site.com/page.php?blah=foo?bar=blah --> http://site.com/page.php?blah=foo?bar=blah

到目前为止我已经尝试过:

RewriteCond %{HTTP_HOST} on

RewriteRule ^page\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

但这不起作用。有什么建议吗?

【问题讨论】:

    标签: php http redirect https apache2


    【解决方案1】:

    这也可能是快速复制粘贴

    if ($_SERVER['HTTPS'] == "on") {
        $url = "http://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
        header("Location: $url");
        exit;
    } 
    

    【讨论】:

    • 噢,是的,PHP 重定向比“有时”有效的难以理解的 apache 重写废话要好得多。此外,使用 isset 检查是否设置了 $_SERVER['HTTPS']。不想在不是 HTTPS 请求的页面上收到 php 警告。
    【解决方案2】:
    if($_SERVER['SERVER_PORT'] == '443')
    {
       header('location:http://url.com');
    }
    

    如果安全端口设置为 443 以外的端口,这将不起作用,所以 你也可以使用

    $_SERVER['HTTPS'] == 'on'
    

    【讨论】:

    • 你的意思是//change to http 吗?我会做一个元刷新来完成这个吗?如果你知道的话,我更喜欢 .htaccess 方法?
    • 这被标记为 PHP,如果你不想要 PHP,你应该只标记它 htaccess。第一个答案现在对我来说非常有效。
    猜你喜欢
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2019-06-07
    • 2012-10-20
    • 2016-12-12
    相关资源
    最近更新 更多