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 增加一组设定

<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 转址之後,再点连结网址自动会缩成较短的网址文章,也可以正确的显示喔。

重点整理

  1. 移除 index.php 是为了提高 SEO 排名
  2. 安装 IIS URL Rewrite
  3. 调整 web.config

相关学习文章

Google Search Console 安装教学 让新文章马上列入搜寻名单
WordPress 强制使用 https 连线 (使用 SSL 凭证)
WordPress 修改主题样式 (style.css) - 常用 4 招教学


<<:  [CSS] Flex/Grid Layout Modules, part 5

>>:  D9-(9/9)-八方云集(2753) 真正的水饺股

【DAY 28】Microsoft 365 X Dynamic 365该怎麽选才好呢? (中)

哈罗大家好~ 昨天我们初步认识了 Dynamic 365,那 Dynamic 365 与 Micro...

33岁转职者的前端笔记 DAY 4 固定浮动选单 RWD 写法

随着智慧型手机的普及 网页设计也要随着时代的潮流而写出适合智慧型手机用户的网页 今天的笔记是目前最常...

企划实现(13)

GOOGLE登入 第一步:在firebase添加一个新的专案 第二步:选取android专案 第三步...

DAY 14:Simple Factory Pattern,把复杂细节隐藏的小工厂

工厂模式主要有三种不同的实作: Simple Factory Pattern Factory Met...

【Day 07】- 第一只网路爬虫要用什麽函式库? (Requests)

前情提要 前一篇文章带大家看了chrome 开发工具的使用,并向下又说明了 Element 、Net...