站点图标 程序员碎记

Windows Server上安装部署WordPress(5):IIS 固定链接URL格式设置

WordPress

IIS 下 WordPress 站点的固定链接格式设置说明教程。在 Windows 操所系统上安装部署 WordPress ,本篇为 Windows Server 上安装部署 WordPress(5):IIS 下 WordPress 站点的固定 URL 链接格式设置。由于篇幅太长,所以把整个在 Windows 上安装部署 WordPress 分成了几篇来写:

WordPress 初始化安装完成后,默认的 Url 链接格式是:https://blog.codeusing.com/index.php/%year%/%monthnum%/%day%/%postname%/,这是一种“比较好的链接”,但不是“漂亮的链接”、“友好的链接”。最常见、最通用的漂亮友好链接格式如下:

#1 包含分类目录、Url 别名:
https://blog.codeusing.com/category/post-name/
#2 只包含 Url 别名
https://blog.codeusing.com/post-name
#3 包含年、月、日、Url 别名:
http://example.com/year/month/day/post-name

与漂亮友好的链接格式相比,WordPress  默认“比较好的链接”格式多了 index.php,一般网站都不采用这种格式。通常网站会尽量采用简短、漂亮,对用户、搜索引擎友好的 URL 链接格式。

WordPress.org  官方关于固定链接的说明文档:

WordPress 固定链接设置

登录 WordPress 后台,点 Setting(设置) –> Permalink(固定链接)导航菜单进入固定链接设置界面,可以随意设置想要的链接格式。

IIS WordPress 站点固定链接格式支持

如果 WordPress 是部署在 IIS 上的,想要支持友好的 Url 链接格式,需要安装 URL Rewrite 模块支持。如果没有安装 IIS URL Rewrite,访问没有 “index.php” 格式的文章地址,如 http://demo.wordpress.com/hello-world,会报404错误:

下载 IIS URL Rewrite 模块:

打开下载页面后,滚动到页面最下边,可以看到各语言的 MSI 安装包下载,选择需要的下载即可。

安装 IIS URL Rewrite 模块:

1. 双击下载好的 .msi 文件,运行安装。

2. 安装完成后,打开 IIS,在服务器 Features View(功能视图),可以看到多了一个 URL Rewrite

添加 URL 路由规则

上一步安装完 IIS URL Rewrite 后,你如果测试浏览 http://demo.wordpress.com/hello-world,应该还是会报 404 错误。原因是没有添加路由规则。

在 WordPress 网站根目录下,用文本编辑器打开 web.config 文件,在 configuration/system.webServer xml 配置节点下添加 rewrite 规则:

<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/{R:0}" />
    </rule>    
    <rule name="WordPress: demo.wordpress.com" patternSyntax="Wildcard">
      <match url="*" />
      <conditions>
        <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>

再次测试浏览 http://demo.wordpress.com/hello-world,可以正常访问。搞定!

退出移动版