安装 Cloudflare SSL 后,wordpress 站点内的链接无法打开

问题描述 投票:0回答:1

我已通过 CF 为我的域 aus.ac.in 安装了 ssl。我可以正常访问该网址,但标题下拉菜单下的所有其他链接都无法打开

1 2

到处都出现此错误: (索引):158 混合内容:“https://www.aus.ac.in/”页面是通过 HTTPS 加载的,但请求了不安全的脚本“http://www.aus.ac.in/wp-”包括/js/twemoji.js?ver=6.2'。该请求已被阻止;内容必须通过 HTTPS 提供。

这是我的.htaccess:

#BEGIN Really Simple SSL LETS ENCRYPT
RewriteRule ^.well-known/(.*)$ - [L]
#END Really Simple SSL LETS ENCRYPT

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#For API access of posts
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

RewriteRule ^index\.php$ - [L]
#RewriteRule ^harghartiranga\.html$  - [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^ - [L]

RewriteRule ^(wp-(content|admin|includes).*) $1 [L]

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|includes).*) $2 [L]

RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

# New 12:55 27-2-18
RewriteRule  ^(.+)?/(wp-.*) /$2 [L]



RewriteRule . index.php [L]
#RewriteRule . harghartiranga.html [L]
#Temporary changes for Har Ghar Tirangaa 3rd Aug 2022
# RewriteRule ^home$ index.php [L]
</IfModule>

# Added on 29th Oct 2022 by bijay
php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300

Options -Indexes
# END WordPress

我尝试在 htaccess 中评论旧规则和新 ovveride 规则,但没有成功。它托管在本地服务器上。我也无法访问我的 wp-admin 面板。

php wordpress ssl cloudflare
1个回答
0
投票

这是一个称为“混合内容”的常见问题。当安全网页(通过 HTTPS 加载)包含通过不安全 HTTP 连接加载的脚本、图像或样式表等资源时,就会发生这种情况。现代浏览器会阻止这些资源,因为它们可能会被攻击者操纵,从而危及整个页面的安全。

您需要使用 HTTPS 提供所有资源,因此您应该将所有主题、插件和内容中的所有 URL 从 HTTP 更改为 HTTPS。

如果您想要快速解决方案,您可以在 .htaccess 文件中添加一些规则,以将所有资源从 HTTP 301 重定向到 HTTPS。像这样的东西:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

将此代码段放在 .htaccess 文件顶部,就在

RewriteEngine On

之后

此外,在您当前的 .htaccess 中,我看到一条重写规则,其中添加了 www.保留原始协议的所有请求的前缀,此规则可能会干扰您当前的需求,因此我建议您更改该部分以仅支持 https。

RewriteEngine On

#...

#RewriteCond %{HTTP_HOST} !^www\. --remove
#RewriteCond %{HTTPS}s on(s)|offs() --remove
#RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R] --remove


# Force www and https, all in one
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
© www.soinside.com 2019 - 2024. All rights reserved.