【问题标题】:I want to redirect specific url to non https using htaccess我想使用 htaccess 将特定的 url 重定向到非 https
【发布时间】:2020-11-26 17:30:20
【问题描述】:

我目前的 htaccess 是:-

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
   RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>

我想将规则添加到 htaccess 以获取像 https://www.example.com/abc/arg1/arg2 这样的 URL 应该重定向到 http://www.example.com/abc/arg1/arg2 对于这个https://www.example.com/abc/*,它应该重定向到非https格式并保留所有参数。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    使用以下规则,清除缓存后检查。

    RewriteCond %{REQUEST_URI} ^/abc/(.*) [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    编辑:请尝试以下规则,

    RewriteCond %{REQUEST_URI} !^/abc/(.*) [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    在上述规则中,我们将 https 附加到所有不以 abc/(.*) 开头的 url,您必须在原始 https 规则存在的地方使用此 rewritecond

    【讨论】:

    • 您好,它没有用。 https url 仍然没有重定向到http,我使用私人窗口来测试这个
    • @Deejay:私人窗口并不意味着旧缓存消失了。彻底清除浏览器缓存并重新测试。
    【解决方案2】:

    如果要将所有以abc/ 开头的https 请求重定向到http,则必须同时检查abc/HTTPS

    RewriteCond %{HTTPS} on
    RewriteRule ^abc/ http://www.example.com%{REQUEST_URI} [R,L]
    

    当一切正常时,您可以将R 替换为R=301 (permanent redirect)。 从不R=301测试。

    【讨论】:

      【解决方案3】:

      我不确定你是如何完成这份工作的,但以下内容应该对你很有效。

      RewriteCond %{HTTPS} on
      RewriteCond %{REQUEST_URI} ^/abc [NC]
      RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
      

      【讨论】:

        猜你喜欢
        • 2012-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多