IIS URL Rewrite

本文详细解析了网站URL重写规则,包括文章、标签和测试页面的重写逻辑,帮助开发者理解如何利用规则实现URL优化。
http://faq.comsenz.com/viewnews-968

规则如


<system.webServer>

<rewrite>

<rules>

<rule name="rule1" stopProcessing="true">

<match url="^article/([0-9]+)/([_0-9a-z-]+)" />

<action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" /

</rule>

<rule name="rule2" stopProcessing="true">

<match url="^tags/([0-9]+)" />


<action type="Rewrite" url="tags.php?tags={R:1}" />

</rule>

<rule name="rule3" stopProcessing="true">

<match url="test.html" />

<action type="Rewrite" url="test.asp" />

</rule>

</rules>

</rewrite>

</system.webServer>
### IIS 中设置 URL 重写规则 #### 使用图形界面导入规则 通过IIS管理器可以方便地配置URL重写。双击站点下的“URL Rewrite”,之后点击“Import Rules…”按钮来选择事先准备好的`.htaccess`文件进行导入[^1]。 #### 手动编辑 web.config 文件添加重写规则 对于更复杂的场景或是偏好手动配置的情况,则可以直接修改位于网站根目录下的`web.config`文件,向其中加入特定的XML节点用于定义重写行为: ```xml <configuration> <system.webServer> <rewrite> <rules> <!-- 将 index.html 请求转发至 index.aspx --> <rule name="Index Html to Aspx" stopProcessing="true"> <match url="^index\.html$" ignoreCase="false"/> <action type="Rewrite" url="/index.aspx"/> </rule> <!-- 实现 HTTP 到 HTTPS 的强制跳转 --> <rule name="Force HTTPS Redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true"/> </conditions> <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}"/> </rule> <!-- 更多自定义规则可按需添加在此处 --> </rules> </rewrite> </system.webServer> </configuration> ``` 上述示例展示了两个不同的应用场景:一是将对`index.html`的请求内部改写为指向`index.aspx`;二是实现了从HTTP协议到HTTPS的安全连接转换[^3]。 #### PHP 应用程序中的特殊考虑事项 当涉及到像Yii这样的PHP框架时,除了基本的路由外,还需要确保正确处理静态资源以及不存在路径的默认响应逻辑。这通常涉及更多条件判断语句和正则表达式的运用以匹配各种可能发生的URL模式[^2]。 #### 解决潜在问题 如果遇到某些情况下重写规则未能正常工作的问题,比如在IIS7环境下运行FastCGI模式部署的PHP应用时发现`flush()`函数无法即时刷新输出内容给客户端浏览者看到更新进度条等情况,则可能是由于服务器端缓存机制所致,此时建议检查并调整相关设置参数或尝试其他替代方案解决此类技术难题[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值