URL重写与伪静态

URL重写与伪静态

左直拳

实现网页伪静态的方法有很多种罢?可是我都不会。

在百度、GOOGLE里找来找去,许久连个屁也没找到。

新年过后,春回大地,万象复苏,冻雨暴雪天气逐渐结束,听说湖南郴州城区也慢慢恢复了供电,而近日科索沃也悍然独立了,真是喜事连连,令人笑逐颜开。

在改革春风的吹拂下,我居然也得以利用URL重写实现了伪静态。

原理是在ASPNET层面上将URL重写。用户访问的是类似

http://www.fuck.com/1-345.aspx这样的地址,实际上真实的页面是

http://www.fuck.com/fuck.aspx?male=1&female=345

要实现这种效果,需要利用一个老外写的一个包(详细请见http://msdn2.microsoft.com/zh-cn/library/ms972974.aspx

)。不过他提供了所有的源代码。与其他下载来历不明的 DLL方法 相比,这种方法更令我们放心。一切尽在掌握。

将这个包编译,然后引用产生的DLL。接着修改 Web.config。加入以下代码

<configSections>

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>

</configSections>

……

<!-- url rewriter规则 开始-->

<RewriterConfig>

<Rules>

<RewriterRule>

<LookFor>~/(\d{1,})-(\d{1,})\.aspx</LookFor> <! 正则表达式 -->

<SendTo>~/fuck.aspx?male=$1&amp;female=$2</SendTo>

</RewriterRule>

<RewriterRule>

<LookFor>~/fuckyou.aspx</LookFor>

<SendTo>~/fuck.aspx?malename=me&femalename=you</SendTo>

</RewriterRule>

</RewriterConfig>

<!-- url rewriter规则 结束-->

……

<httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

</httpModules>

可以这还不是伪静态啊。我想达到的效果是输入

http://www.fuck.com/1-345.html,从而访问

http://www.fuck.com/fuck.aspx?male=1&female=345

MSDN这篇文章反反复复的看,都只能处理ASPX文件。怎么办?

主要是输入*.htmlIIS会认为这是一个静态页面,根本就到不了ASP.NET这一层,那个引用的包也就无用武之地了。如果能让ASPNET处理html类型的页面就好了。

结果配置一下IIS就搞定了。

IIS里,点击指定网站的属性,主目录-配置-映射,添加,可执行文件选:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

扩展名:.html

勾上“全部动作”和“脚本引擎”

务必取消“检查文件是否存在”(不然的话IIS一看没这个1-345.html,立马返回一个页面不存在的错误)

确定即可。

相应的WEB.CONFIG里也要改改:

<RewriterRule>

<LookFor>~/(\d{1,})-(\d{1,})\.html</LookFor>

<SendTo>~/fuck.aspx?male=$1&amp;female=$2</SendTo>

</RewriterRule>

啊!终于搞定了。我情不自禁地流出了激动的泪水。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx 是一款高性能的 Web 服务器和反向代理服务器,能够处理大量的并发连接并提供快速的响应。伪静态 URL 是指通过配置来将动态生成的 URL 转化为静态的 URL,使得 URL 更加直观和友好。 在 Nginx 中实现伪静态 URL 需要借助于 rewrite 模块的功能来实现。通过 rewrite 规则,可以将原本包含动态参数的 URL 重写为不包含参数的静态 URL。 例如,假设原本的动态 URL 是:www.example.com/index.php?id=1,经过伪静态转换后的静态 URL 可能是:www.example.com/article/1。 实现伪静态 URL 的步骤如下: 1. 首先,需要在 Nginx 的配置文件中加载 rewrite 模块。可以在 http 块中的顶层或者 server 块中进行配置。 2. 在 server 或者 location 块中添加 rewrite 规则。例如,通过正则表达式匹配原始 URL,并根据规则转换为静态 URL。 3. 针对不同的动态 URL,可以分别设置不同的 rewrite 规则。根据需要,可以将多个动态参数转为更加友好的静态 URL。 实现伪静态 URL 可以带来一些好处,例如: 1. 对搜索引擎更加友好:静态 URL 更容易被搜索引擎爬虫抓取和索引,提高网站的可见度和排名。 2. URL 更加直观:静态 URL 更加具有描述性,更容易让用户理解和记忆。 3. 提高安全性:通过伪静态将动态参数隐藏起来,可以减少攻击者对网站的破坏和攻击。 需要注意的是,在实现伪静态 URL 的过程中,需要确保 URL 的唯一性以及正确性。同时,还需要保证原本的动态功能不受影响,并且在页面访问时能够正确解析相应的参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值