【问题标题】:redirection issue in www to non www with ssl/https使用 ssl/https 将 www 中的重定向问题重定向到非 www
【发布时间】:2016-06-06 06:00:03
【问题描述】:

我有一个非 www 网址的 SSL 证书:https://domain.com

我知道有很多类似的问题,但似乎没有一个能解决我的问题。这是我想要做的:

问题:

1) http://www.domain.com -> https://domain.com **www to non www DONE**

2) http://domain.com -> https://domain.com **http to https DONE**

3) https://www.domain.com -> https://domain.com/ **NOT DONE**
      - Getting ERROR ON Above URL number (3): Your connection is not private

到目前为止,我的 .htaccess 文件如下所示:

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

# http to https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# https://www to htttps://

请注意上面的 .htaccess 代码可以很好地解决我的第一个和第二个问题,现在我想解决我的第三个问题

以下是我已经尝试过的解决方案:

【问题讨论】:

  • 您是否启用了.htaccess 文件?
  • 是的它已启用.. 看看我的问题我发布了 htaccess 文件代码它的工作
  • 如果您的代码正常工作,那么问题是什么?
  • 看看我的问题我想做什么???
  • 将 domain.com 重定向到 domain.com?

标签: php apache .htaccess redirect mod-rewrite


【解决方案1】:

试试这个:

将 www 重定向到非 www(使用 SSL 时)

RewriteCond %{HTTP_HOST} ^www.your_domain.com$
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://your_domain.com/$1 [R=301]

最后 2 个用于使用 SSL 的在线商店,或防止在某些页面上使用 SSL 时出现任何 SSL 错误。

更新1:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{ENV:HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]

更新 2

重写引擎开启 让所有http使用https:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://xxx.yyy/$1 [L,R=301]

只让 www https 使用非 www https:

RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^www[.].+$
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [L,R=301]

更新 3:

在此处查看此问题:

.htaccess redirect www to non-www with SSL/HTTPS

【讨论】:

  • 不工作..再次检查我的问题我对它做了一些更改
  • 兄弟我要做三个重定向到同一个域
  • @shawn_parker 试图得出一个解决方案给我一些时间。
  • @shawn_parker 检查我的更新 1
  • 兄弟,我想这样做,
【解决方案2】:

试试:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%1%{REQUEST_URI} [L,R]

上面的规则会重定向

在测试之前清除浏览器的缓存。

【讨论】:

  • @shawnparker 我在发布之前在我的 apache 服务器上测试了代码,它在那里运行良好。 Apache 2* 和 2.4
  • 我正在我的服务器上测试你的代码,但它不工作的兄弟
【解决方案3】:

试试这个。如果这不起作用,请检查您的站点 conf 文件,您有 AllowOverride All。如果是None,则改为All

示例 site.conf

<Directory /var/www/directory/>
    Options Indexes
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC]
RewriteRule ^(.*)$ https://yourdomain.com/$1 [L,R=301]

【讨论】:

  • 不是正确答案
  • @Haridarshan - 除了答案无效之外,格式不正确。请在以后正确格式化您的帖子。
猜你喜欢
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多