我最终在我的网站www.giftdays.jp
上安装了SSL。它完美无瑕。
它显示绿色挂锁“安全”,就像我希望的那样。
但问题是它只在主页上显示。每当我访问产品页面等所有页面时,绿色挂锁都消失了,只是在圆圈内显示感叹号。 (它没有显示未通过交叉HTTPS保护)。
从chrome打开检查后,我收到MIXED CONTENT错误。
这是确切的错误。
“混合内容:”https://www.giftdays.jp/products/list.php?mode=search&sps=5'页面是通过HTTPS加载的,但请求的是不安全的图片“http://www.giftdays.jp/special/list_header/happywedding/images/happywedding.png”。此内容也应通过HTTPS提供。“
< / p>
虽然我的网站是在HTTPS上加载的,为什么不显示绿色挂锁?
通过谷歌搜索和所有,我最终在堆栈上发布一些 htaccess 帖子,我在 htaccess 上添加并上传到服务器上。我添加的代码是:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
然而网站的其他页面没有变化 这就是我的 htaccess 文件中的内容:
# 基本は SC_Initial.php で設定するが、ini_setで反映されないものはここで設定する
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation off
php_value output_handler none
php_flag magic_quotes_gpc off
php_flag session.auto_start 0
# INI_ALL なのにもかかわらず, ini_set で指定しても反映されない環境がある...
php_value mbstring.internal_encoding UTF-8
# デフォルトテンプレートの状態で 2M 近くになるため
php_value upload_max_filesize 5M
#php_value post_max_size 8M
php_flag register_globals off
RewriteEngine on
Options -Indexes
###################
# メンテナンス中
###################
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/503.php
RewriteCond %{REQUEST_URI} !^/maintenance.html
RewriteCond %{REQUEST_URI} !^/Gds1q2w3eAdmin/
RewriteCond %{REQUEST_URI} !^/user_data/
RewriteCond %{REMOTE_ADDR} !=114.179.83.200
RewriteCond %{REMOTE_ADDR} !=54.250.233.6
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201403311500
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} <201406011000
RewriteRule ^.*$ /503.php [L]
###################
# 通常使用
###################
RewriteRule ^guide/(.*)$ user_data/guide/$1
RewriteRule ^products/shop_map.php user_data/products/shop_map.php
RewriteRule ^concierge/.* user_data/concierge/$1
RewriteRule ^original/(.*)$ user_data/original_catalog/$1
RewriteRule ^gift/(.*)$ user_data/gift/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#商品ページのURL書き換え
RewriteRule ^gifts/([0-9]+)/$ products/detail.php?product_id=$1 [QSA,L]
RewriteRule ^gifts/([0-9]+)/shop_map.php user_data/products/shop_map.php
#カタログページのURL書き換え
RewriteRule ^catalog/price-([0-9]+)/$ user_data/catalog/list.php?catalog_type_id=1&catalog_id=$1 [QSA,L]
RewriteRule ^catalog/theme-([0-9]+)/$ user_data/catalog/list.php?catalog_type_id=2&catalog_id=$1 [QSA,L]
RewriteRule ^catalog/(.*)$ user_data/catalog/$1
#有効性テスト用
# Redirect /api/ http://www.google.com
#Pマーク指摘対応
RewriteCond %{REQUEST_URI} .*/contact/.*$ [OR]
RewriteCond %{REQUEST_URI} .*/entry/.*$ [OR]
RewriteCond %{REQUEST_URI} .*/gift/.*$ [OR]
RewriteCond %{REQUEST_URI} .*/mypage/.*$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^(www\.)?giftdays.jp$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# 404ページ
ErrorDocument 404 /user_data/404.php
经过调查,我在ftp中的templates文件夹中找到了一些http。但是我猜他们就像100多个人一样。我应该一个接一个地进入内部并将所有内容更改为https,还是我可以做任何事情来改变所有内容? 谢谢
答案 0 :(得分:0)
设置Apache以向https发送http请求时,您无法使用重写引擎。您必须使用Redirect指令。
您可能已经为http和https设置了两个VirtualHost块。到达http VirtualHost的任何请求都应重定向到https URL。