【问题标题】:Append www in URL for both HTTP and HTTPS在 HTTP 和 HTTPS 的 URL 中附加 www
【发布时间】:2011-07-20 22:34:01
【问题描述】:

我的网站上有一些使用 http 的页面和使用 https 的其他页面。现在我想使用 mod_rewrite 将 www 附加到所有 URL,无论它们使用 http 还是 https。

我在 .htaccess 中有我当前的代码:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteCond $1 !^(index\.php|public|assets|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]

请只关注前两行,其余的用于其他重写规则,但我将其包括在内,以防它们对我的前两行造成任何错误。

现在这会将所有页面重定向到 http,但我希望将使用 https 的页面重定向到正确的协议。我尝试了 StackOverflow (htaccess redirect for non-www both http and https) 上的一个线程的解决方案,但它对我不起作用。

【问题讨论】:

    标签: url mod-rewrite https


    【解决方案1】:

    您链接的答案应该可以完美运行。如果它不起作用,则可能未设置 HTTPS 变量。这通常是因为您没有在 apache 服务器上执行 HTTPS。也许您有一个代理或负载均衡器?在这种情况下,您需要确保设置了 HTTPS 变量。这样的事情通常可以解决问题(该示例适用于亚马逊弹性负载均衡器):

    SetEnvIf X-Forwarded-Proto https HTTPS=1
    

    【讨论】:

    • 您的 HTTPS 是通过 mod_ssl 还是其他方式提供服务?
    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2018-12-30
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多