【问题标题】:<http:// to http://www.> and <https:// to https://www.><http:// 到 http://www.> 和 <https:// 到 https://www.>
【发布时间】:2012-06-04 22:20:19
【问题描述】:

没什么好说的,因为我想尽量解释清楚。

有没有办法创建一个 .htaccess 来做这些事情:

example.com > http://www.example.com

http://example.com > http://www.example.com

https://example.com > https://www.example.com

我的意思是这样的:

  1. 如果是http,它会转到http + www
  2. 如果它的 https 它转到https + www
  3. 如果 nothing 在域的前面,则转到http + www

我试图让它与另一个代码一起工作:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]

该代码几乎可以正常工作,唯一错误的是,当它的 https:// example.com 重定向到 http: // www. example.com

【问题讨论】:

  • 你有没有尝试过?

标签: .htaccess mod-rewrite


【解决方案1】:

如果这不起作用,您可以为 https 和 http 编写单独的规则:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.xplayrs.com/$1  [L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.xplayrs.com/$1  [L]

【讨论】:

    【解决方案2】:

    将您的代码替换为:

    RewriteCond %{HTTPS}s on(s)|
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
    RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    【讨论】:

    • 好吧,这段代码似乎和我的问题一样:v
    • 这是经过良好测试的代码(您可以使用上面的代码搜索我接受的一些答案)。您的代码中是否有任何机会没有从 https 跳转到 http?
    • hm,您可以在我的页面上自己查看,这里:xplayrs.com(请注意,该链接带有 https:// 并且 not 添加了 www。)
    • 啊废话,我有一个错字。我输入了{HTTPS} 而不是%{HTTPS} :( 对此真的很抱歉,请立即查看编辑后的答案。
    • >:/ 还是不行。 D:检查带有链接的评论,它似乎仍然重定向到 http://
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2014-05-08
    • 2016-01-20
    • 2014-12-16
    • 2018-09-26
    • 2017-12-28
    • 2021-03-25
    相关资源
    最近更新 更多