当前位置

MediaWiki网站改http为https访问

James Qi 在 2016年11月30日 - 10:57 提交
内容摘要:  这两个持续了解、设置SSL证书方面的事情,先要申请免费的SSL证书,再尝试进行https多网站1个IP多个SSL证书的Apache设置,然后把Drupal网站改http为https访问,另外还想把......

  这两个持续了解、设置SSL证书方面的事情,先要申请免费的SSL证书,再尝试进行https多网站1个IP多个SSL证书的Apache设置,然后把Drupal网站改http为https访问,另外还想把以前设立的MediaWiki网站也逐步改为https访问,先那以前的个人博客(维客)做一个试验:

  再来记录一下要点及步骤:

  • 官方文档:官方网站上还有人创建了中文文档:Manual:Installing MediaWiki With SSL/zh,不过说的内容与MediaWiki关系不大
  • LocalSettings:修改一些变量设置,例如$wgServer = 'http://www.jamesqi.com';改为$wgServer = '//www.jamesqi.com';相对协议//表示http和https都支持,这时可以增加设置$wgServer = '//example.com'; $wgCanonicalServer = 'https://example.com';,让默认的协议为https,如果只支持https一种协议,就改为$wgServer = 'https://www.jamesqi.com';而不设置$wgCanonicalServer
  • 电脑版手机版切换链接:这个在设置的地方修改,例如我们现在是在LocalSettings.php中设置的,把http://都改为//;
  • 内部链接:好些地方都需要从http链接改为https链接;
  • 模板链接:特别是一些模板页面因为涉及到很多页面所以要特别重视,例如[[模板:留言]]中需要把http://改为//,还有[[模板:导航条]]等;
  • 消息链接:例如[[MediaWiki:Talkpageheader]]等
  • 外部链接:如果外面是指向已经修改为https的网站的链接,可以将http://www.example.com改为https://www.example.com或者//www.example.com
  • 跨站链接:这个麻烦一点,需要修改数据中的interwiki表,将iwurl中的http://wiki.example.com改为https://wiki.example.com或者//wiki.example.com补充:数据库命令批量修改办法:
    update mingluji_fair.interwiki set iw_url = (REPLACE(iw_url, 'http://', 'https://')) where iw_url like'http://%' and iw_local ='1' and iw_trans ='1';
  • 图片:页面中包含[[File:ABC.png]]这样的图片是没有问题的,但如果设置了$wgAllowExternalImages = true;允许外部图片就需要留意了,http://www.18dao.org/logo.png 这样的图片就成了不安全的,需要修改为https://www.18dao.org/logo.png 或者更换、去掉;
  • 运行Jobs:修改了模板后需要运行maintenance/runJobs.php来更新数据;
  • 清理缓存:我们的MediaWiki网站很多都开启了FileCache,在各项修改完成后需要清理缓存让新的链接和新的页面生效;
  • 重定向:推荐将所有http重定向到https,在.htaccess中设置两行
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • 机器人协定:修改robots.txt(或者我们设置的robots.php),sitemap的http改为https;
  • 网站地图:修改生成sitemap的命令,将http改用https协议,
    $PHP $HTDOCS/mediawiki_code_www_jamesqi_com/maintenance/multi_sites.php generateSitemap.php www.jamesqi.com --conf=$HTDOCS/wiki.jamesqi.com/LocalSettings.php --compress=no --fspath=$HTDOCS/wiki.jamesqi.com/sites/www.jamesqi.com/ --server=https://www.jamesqi.com --urlpath=https://www.jamesqi.com
    重新生成全部网站地图;
  • 提交搜索:到Google Webmaster Tools、百度站长平台等地方去提交新的https的URL、网站地图等,等过几个月http访问全部指向https没有问题后,可以删除以前提交过的http站点。

   待解决和已解决问题:

  • {{org:{{PAGENAME}}}}这种嵌入其它站内容的地方,变成了
    Moved Permanently
    The document has moved here.
    补充:已经解决,站间链接interwiki表,将iwurl中不能设置成//wiki.example.com,也不能保存原来的http://wiki.example.com,而是需要改为固定的https://wiki.example.com
  • Google地图调用以前是http://maps.google.com/maps/api/js?sensor=false,在https网站下无法显示,改为//maps.google.com/maps/api/js?sensor=false就可以了,但百度地图API以前是嵌入http方式v1.0,现在无法显示,需要改为调用https方式的v2.0,直接改一下还不行,需要再花时间测试(如果以前就是调用的百度地图API v2.0则只要把http改为https再加一个&s=1就可以了)

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符