Home > Backend Development > PHP Tutorial > 强制使用 HTTPS 对 Typecho 目录无效

强制使用 HTTPS 对 Typecho 目录无效

WBOY
Release: 2016-06-06 20:27:07
Original
1964 people have browsed it

我给我的个人站点加了 SSL 证书,而且设置了 HTTP 全部跳转到 HTTPS,可为什么直接 HTTP 访问 Typecho 所在目录(/blog/)不会跳转?包括文章页、后台页面也是。
而且直接 HTTP 访问博客首页,文章链接也是 http:// 而不是 https://,我在后台已经设置了站点地址是走 https 的。

另外,主机商说主机使用的不是 443 端口,只能用 RewriteCond %{HTTP:KERSSL} !on 来判断是否走了 HTTPS,我的 .htaccess 文件如下:

<code>RewriteCond %{HTTP:KERSSL} !on [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</code>
Copy after login
Copy after login

直接用 HTTP 访问其他目录是能够跳转到 HTTPS 的。

回复内容:

我给我的个人站点加了 SSL 证书,而且设置了 HTTP 全部跳转到 HTTPS,可为什么直接 HTTP 访问 Typecho 所在目录(/blog/)不会跳转?包括文章页、后台页面也是。
而且直接 HTTP 访问博客首页,文章链接也是 http:// 而不是 https://,我在后台已经设置了站点地址是走 https 的。

另外,主机商说主机使用的不是 443 端口,只能用 RewriteCond %{HTTP:KERSSL} !on 来判断是否走了 HTTPS,我的 .htaccess 文件如下:

<code>RewriteCond %{HTTP:KERSSL} !on [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</code>
Copy after login
Copy after login

直接用 HTTP 访问其他目录是能够跳转到 HTTPS 的。

在config.inc.php里增加

<code class="php">define('__TYPECHO_SECURE__', true);</code>
Copy after login

最后找出了原因,是因为 /blog/ 下还有一个 .htaccess,我一开始不知道这个文件,所以忘在这里加上跳转了,因此在访问/blog/的时候 Apache 读取的是该目录下的 .htaccess(也就是不会从 HTTP 跳转到 HTTPS 的那个)。

除此之外,@joyqi 回答的解决方案是用来让链接输出为https

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template