【问题标题】:SSL and .htaccess redirectSSL 和 .htaccess 重定向
【发布时间】:2014-07-19 06:53:18
【问题描述】:

我正在开发一个应用了 SSL 证书的网站!现在我希望人们使用 https 而不是 http 访问该网站。

我已经能够通过...实现这一目标

<ifModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond   %{HTTPS}    off
  RewriteRule   (.*)     https://%{HTTP_HOST}%{REQUEST_URI}

</ifModule>

但我希望它自动默认为 www.mysite.co.uk 而不是 mysite.co.uk!我也可以通过使用这个来删除 index.php...

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

但只是难倒了 www。少量!任何帮助将不胜感激! - 菲利普·杜斯

【问题讨论】:

  • 那么为什么不rewriterule .* https://www.mysite.co.uk%{REQUEST_URI}%{HTTP_HOST} 字面意思是用户提供的名称,并由浏览器在 Host: 标头中发送。
  • 所以,这将对您有所帮助 - RewriteRule (.*) https://www.mysite.co.uk%{REQUEST_URI}
  • 嗨@mar​​k-b,我确实尝试过,但一直收到 500 内部服务器错误!

标签: php apache .htaccess ssl


【解决方案1】:
<ifModule mod_rewrite.c>
    RewriteCond %{HTTP_HOST} ^mysite.co.uk
    RewriteRule   (.*)     https://www.%{HTTP_HOST}%{REQUEST_URI}

    RewriteCond   %{HTTPS}    off
    RewriteCond %{HTTP_HOST} ^mysite.co.uk
    RewriteRule   (.*)     https://%{HTTP_HOST}%{REQUEST_URI}
</ifModule>

这将确保您始终在 URL 中包含 www 和 https。您可以在以下位置进行测试:http://htaccess.madewithlove.be/

【讨论】:

  • 嗨@neo,这是完美的,正是我所需要的。非常感谢! - 菲利普·杜斯
猜你喜欢
  • 1970-01-01
  • 2012-02-06
  • 2017-09-23
  • 2013-07-14
  • 2014-11-24
  • 2016-12-20
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多