對于WordPress建站,雖然我們一直推薦用戶使用linux系統,但是無可避免的依然會有很多用戶由于種種原因選擇了windows系統,并且也會經常有用戶遇到中文鏈接404錯誤的問題,現在針對Windows IIS 7.5下的中文鏈接(比如標簽頁)404錯誤提供一種解決方案。
首先,我們在WordPress安裝目錄下,新建一個“index2.php”文件,內容如下:
| <?php
// IIS Mod-Rewrite if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL']; } // IIS Isapi_Rewrite else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; } else { // Use ORIG_PATH_INFO if there is no PATH_INFO if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) ) $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO']; // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice) 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']; } // Append the query string if it exists and isn't null if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; } } require("index.php"); ?> |
然后在web.config中新增一條規則,并將此規則置于規則集合的頂部:
| <rule name="ChineseURL" stopProcessing="true">
<match url="/(tag|category)/(.*)" /> <action type="Rewrite" url="index2.php" /> </rule> |
效果如下:

如果 WordPress 不是裝在根目錄,則需要更改“<match url="^(tag|category)/(.*)$" />”為“<match url="^安裝目錄/(tag|category)/(.*)$" />”。如果在固定鏈接設置里把默認的標簽前綴和分類目錄前綴(tag 和 category)改了,則更改這句里的對應內容即可。
以上方法只針對標簽和分類里面的中文鏈接,如果您需要對網站的全部中文鏈接(比如文章、頁面等)進行轉化支持,那么可以不用添加最后一步的web.config規則,只需要直接編輯web.config,將上圖里面的<action type="Rewrite" url="index.php" />改成<action type="Rewrite" url="index2.php" />即可。
由于此方法是新建index2.php文件,并配合偽靜態規則實現,所以不受WordPress更新升級影響,推薦使用。
以上就是Windows IIS 7.5 WordPress偽靜態中文鏈接404錯誤解決辦法的詳細內容





