最近将博客从 PJBlog 转移到 WordPress,很多原来的链接地址访问不了,需要重写或重定向 URL。我购买的虚拟主机是 IIS 7.5 服务器,能很好地支持 URL 重写。当然,对于老手,可以直接在 Web.config 的 system.webServer/rewrite 节中添加 URL 重写规则即可。而对于初学者或是在测试阶段,最好利用 IIS URL 重写模板完成。
准备
首先你要在本地安装 IIS URL 重写模块,请到 http://www.iis.net/downloads/microsoft/url-rewrite 下载并安装相应语言的程序。安装后可以直接通过 IIS7 撰写规则,会自动保存到目录下的 Web.config 配置文件。不管你的站点是 .net 写的还是 php 写的,都能使用!因为这个模块是属于 IIS 的,而不是属于 .net 的。
步骤
打开 IIS 7.5,选择一个网站,你会网站主页看到多出了一个 URL 重写的图标。点击进入 URL 重写图形界面。如图:
添加规则
在右侧操作>区点击添加规则...>〉规范域名>,输入主要主机名,如 localhost/wordpress。如图:
system.webServer/rewrite 节点中自动添加了一个规则配置:
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.riafan\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.riafan.com/{R:1}" />
</rule>
当然了,还可以使用空白规则>、具有重写重写映射的规则>、用户友好 URL>等模板来添加规则。其中 空白规则>模板最灵活、而具有重写重写映射的规则>模板一般在使用其它模式难以实现时才使用,此处不详述了。
现在的问题是只要请求不是 localhost/wordpress 开始结束的 URL 都会重定向到 http://localhost/wordpress,包括 bbs.riafan.com 也会重定向到 http://localhost/wordpress,这并不是我们想要的,得修改入站规则。
修改规则
在入站规则网格中双击刚才新建的规则,打开编辑入站规则>界面。将检查输入字符串是否 :>修改为与模式匹配>,将模式(T):>修改为^riafan.com$。如图:
在右侧操作>区点击应用>按钮完成编辑。system.webServer/rewrite 节中相应规则修改为:
<rule name="CanonicalHostNameRule1" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^riafan.com$" />
</conditions>
<action type="Redirect" url="http://www.riafan.com/{R:1}" />
</rule>
在右侧操作>区点击相应按钮还可以重命名、删除、禁用、排序和导入规则,很方便。
评论 (0)