IIS WordPress 永久連結如何移除 index.php 路徑
WordPress 文章的永久連結有分幾種模式,預設是「?p=123」這種方式。
實際上的連結就變成這樣。
為了讓 URL 更好辨識內容也增加 SEO 的排名優化通常會設定為「/index.php/%postname%//」。
可是這樣的 URL 就變成。
網址中間多了一個 index.php 也不是非常的簡潔,希望可以移除中間的 index.php。
讓文章正常顯示這樣該怎麼做呢?
我的 WordPress 環境是安裝在 IIS 之上,該怎麼調整呢?
調整永久連結設定
在永久連結的設定就有一個類似的設定,將「/index.php/%postname%/」改為「/%postname%/」。
這樣調整之後,文章的連結就會拿掉中間的 index.php 部份,我們點文章的網址確實已經變了。
可是就出現了 404 找不到網頁了。
這種網址找不到文章的錯誤,可以利用轉址的功能來解決,將原本的 /%postname%/ 路徑自動轉成 /index.php/%postname%/ 就可以正確顯示了。
IIS 環境解決方法
安裝 URL Rewrite
在 IIS 上轉址的方法,可以安裝 URL Rewrite 套件來解決,在微軟官方下載網址是 http://www.iis.net/downloads/microsoft/url-rewrite
下載之後執行檔案安裝
安裝好了之後,在 IIS 的站台就會出現新的功能 URL Rewrite。
調整 web.config
在 IIS 底下的網站都會有一個 web.config 的檔案,這檔案可以調整 IIS 的設定,
我們安裝好 URL Rewrite 之後,就可以在 web.config 增加一組設定
1 2 3 4 5 6 7 8 9 10 11 12 |
<rewrite> <rules> <rule name="Main Rule" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> |
新設定的位置就放在 <system.webServer> </system.webServer> 之間就可以了
這組設定可以讓原本的 /%postname%/ 路徑自動轉成 /index.php/%postname%/ 文章就可以正確顯示。
調整完 web.config 之後,再回來 IIS 的 URL Rewrite 看也會有相對應的設定
測試網址
執行剛剛原本會錯誤的網頁就變正常了。
已發表很多舊文章是否適用呢?
通常改永久連結的問題,如果你有很多舊文章是不是要一篇一篇的改呢?
有些已經被 google 收錄的連結是不是會失效?
你們放心,這次的修改並不需要大費周章的調整以前的文章連結,而是會自動轉址,
例如有一篇文章在 google 的連結是這樣的
網址中包含了 index.php 路徑,可是經過設定 URL Rewrite 轉址之後,再點連結網址自動會縮成較短的網址文章,也可以正確的顯示喔。
重點整理
- 移除 index.php 是為了提高 SEO 排名
- 安裝 IIS URL Rewrite
- 調整 web.config
相關學習文章
- Google Search Console 安裝教學 讓新文章馬上列入搜尋名單
- WordPress 強制使用 https 連線 (使用 SSL 憑證)
- WordPress 修改主題樣式 (style.css) – 常用 4 招教學
如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝