原本GCP的效能有點不夠,網站常常做一些事情後就會卡住,像是套件升級之類的,後來把GCP提升到1G RAM, 1v CPU,還用過價格模擬器計算一個月大概落在6.7美元,結果沒想到這個月還沒過完,預算通知已經達到100%…所以只好另尋主機。
進入正提,所以我從linux主機把資料都搬到新的空間,但這個空間是windows iis沒想到就讓我遇到坑。
第一、原本的設定是吃固定網址
在linux下設定完固定網址後會自己幫你設定網站下的.htaccess
所以在自訂網址使用上順暢,在iis時,必須手動去調整web.config檔。
在<system.webServer>增加以下設定
<rewrite> <rules> <rulename="Main Rule"stopProcessing="true"> <matchurl=".*"/> <conditionslogicalGrouping="MatchAll"> <addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/> <addinput="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/> </conditions> <actiontype="Rewrite"url="index.php"/> </rule> </rules> </rewrite>
這樣去首頁點擊文章就正常了!
疑奇怪,怎麼有些文章點進去整個卡住,該不會是轉移外掛沒設定好?
我就把全部的外掛都掛掉之後,還是有幾篇文章就是出不來,沒想到後來查到,這是iis 上 wordpress會踩的坑。
在中文網址轉換上會有異常!所以這時候又找到了方法去處理
在網站根目錄新增檔案chineseurl.php
<?php if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])){ $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL']; } else if (isset($_SERVER['HTTP_X_REWRITE_URL'])){ $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; } else{ if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO'])){ $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO']; } if ( isset($_SERVER['PATH_INFO'])){ if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME']){ $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO']; } else{ $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO']; } } if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])){ $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; } } require("index.php"); ?>
並且修改剛剛設定的rewrite
把index.php改成剛剛新增的檔案就大功告成啦
<rewrite> <rules> <rulename="Main Rule"stopProcessing="true"> <matchurl=".*"/> <conditionslogicalGrouping="MatchAll"> <addinput="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/> <addinput="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/> </conditions> <actiontype="Rewrite"url="chineseurl.php"/> </rule> </rules> </rewrite>
這樣一來,點任何文章都正常了,收工。
好強啊!謝謝版主分享