您在這裡

MediaWiki網站改http為https訪問

James Qi 在 2016年11月30日 - 10:57 發表

  這兩個持續了解、設置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 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。