将www重定向到非www,将https重定向到http

时间:2017-01-05 13:17:52

标签: .htaccess redirect

我正在寻找以下最简单,最有效的方法:

  • 将www重定向到非www用于索引的用户和搜索引擎 万维网。
  • 将http重定向到http,因为之前有SSL 现在正在谷歌索引的证书,同时我的网站 实际上是在http上生效,SSL证书将在54天后到期。

是否有办法在一个脚本中合并两者?

我没有足够的经验来有效地做到这一点。

任何帮助都将是一次大规模的帮助。

2 个答案:

答案 0 :(得分:2)

通常你可以在一个步骤中完成这两个方面如果这只是一个主机名:

RewriteEngine On
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} ^www
RewriteRule ^/?(.*)$ http://example.org/$1 [END,R=301,QSA]

对于更灵活的解决方案,例如,如果需要识别多个主机名,则需要使用两对独立的条件和规则。

对于旧的apache http服务器,您可能需要将END标志替换为L标志。因此,如果以上结果导致内部服务器错误,请尝试此操作。 (http状态500)。

以上apporach适用于.htaccess样式文件和真正的http主机配置。但是一般性提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用.htaccess样式文件。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。

答案 1 :(得分:-2)

阅读.htaccess

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} </IfModule>