由於 shazi.twbbs.org 這個網域被長城防火牆封鎖,所以在大陸那邊的網友都無法看到這邊的文章,也無法分享給大陸那邊的同事。
為了解決這個問題,又不想影響原有的 shazi.twbbs.org,所以申請了另一個免費二級網域 shazi.idv.pw 用來當大陸網域以及Content
但用過 WordPress 的都知道,WordPress 的路徑都是使用絕對路徑產出,用意是避免被砍站,或是被鏡像當作跳板
所以除了在 Nginx 要加上新的網域以外
server { .. server_name shazi.twbbs.org shazi.idv.pw; .. }
在 WordPress 的 wp-config.php 也必須加入以下
$home = 'http://'.$_SERVER['HTTP_HOST']; $siteurl = 'http://'.$_SERVER['HTTP_HOST']; define('WP_HOME', $home); define('WP_SITEURL', $siteurl);
讓 php 去抓取使用者入境的 Hostname
再來就是修改圖庫的路徑
Step.1 先修改上傳的路徑跟 URL
$ mysql -uroot -p mysql> use wordpress; 查看 UPLOAD 的設定值 mysql> select * from wp_options where option_name like '%upload%'; +-----------+-------------------------------+--------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------------------------+--------------+----------+ | 53 | uploads_use_yearmonth_folders | 1 | yes | | 54 | upload_path | | yes | | 61 | upload_url_path | | yes | +-----------+-------------------------------+--------------+----------+
Step.2 把 shazi.idv.pw 的 UPLOAD URL 跟檔案路徑加上去
mysql> update wp_options set option_value='/home/wordpress/wp-content/uploads' where option_name ='upload_path'; mysql> update wp_options set option_value='http://shazi.info/wp-content/uploads' where option_name ='upload_url_path';
Step.3 因為舊圖片的絕對路徑都是寫死的,所以必須到資料庫將舊的 URL 取代成新的網址
舊:shazi.twbbs.org
新:shazi.idv.pw
mysql> update wp_posts set post_content = REPLACE(post_content,'http://shazi.twbbs.org/','http://shazi.info/');
重新瀏覽你的 WordPress,大致上的功能應該都可以正常,若你有引用外掛出現錯誤,那就必須檢查外掛所引用的 URL 參數!
註1. 砍站
砍站的原意是避免網站因故而停站,造成網路資源消失,所以使用砍站軟體將整個網站的頁面全部存成 html 下載下來,即使網站遭停用,也可以透過本機來離線瀏覽。
對於大型網站而言砍站是很困擾的,除了造成網站 Loading,最大的問題是造成大量的網路頻寬。
註2. 鏡像站跳板
這是中國大陸常用的 SEO 手法之一,利用鏡像熱門網站來洗關鍵字排名,待網站關鍵字成長後再將網站換為其利益網站,藉此達到快速的 SEO 效果。
對於鏡像站的預防,可以採用絕對路徑的方式導向 URL,即使被鏡像後,使用者點選連結依然可導至原站。或可分析 IP 的 access 異常數量來判別是否為惡意鏡像,但這些方式對於針對性的鏡像只能防君子不防小人。