【发布时间】:2017-12-20 09:30:16
【问题描述】:
我需要设置一个 htaccess 域配置,其中 https 重定向到 http,所有 www 请求都重定向到非 www。我想我可以用下面的代码解决它,但它不能正常工作。它只会将http://www.example.com 重定向到http://example.com。 https请求最终在例如https://example.com 提示连接不安全。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Redirect HTTPS to HTTP
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Force non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
</IfModule>
【问题讨论】:
-
您是否在本地运行 Apache,在同一台机器上运行访问 example.com 的用户代理? RewriteCond %{HTTPS} on 部分可能不适用于所有网络。例如,一些反向代理需要 RewriteCond %{HTTP:X-Forwarded-SSL}。
-
我不在本地运行 Apache。它是具有 cPanel 但没有 ssh 访问权限的共享主机。我在 PHP 中检查了 %{HTTPS},它显示 https 在请求 example.com 时处于活动状态。 example.com 就是一个例子。真实域名隐藏在这里。
标签: apache .htaccess redirect mod-rewrite