实现步骤:
第一步:下载ISAPI_Rewrite.rar,将Rewrite文件夹和httpd.ini直接放在项目根目录下面。
第二步:IIS配置,筛选Rewrite文件夹里面的Rewrite.dll文件,如图:
第三步:在httpd.ini文件,用正则配置url重写路径。
Code
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
#简单页面重写
RewriteRule /News/([-\d]+)/(\d+)\.html /News_Detail\.aspx\?c_id=$1&n_id=$2
RewriteRule /News/([-\d]+).html /News_List\.aspx\?c_id=$1
#二级域名重写配置
RewriteCond Host: (?!www)([^.]+).pifazhinan.cn
RewriteRule ^/ /Shop/Index\.aspx\?uname=$1 [I]
RewriteCond Host: (?!www)([^.]+).pifazhinan.cn
RewriteRule ^/Products/(\d+)\.html /Shop/product_detail\.aspx\?uname=$1&p_id=$2 [I]
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
#简单页面重写
RewriteRule /News/([-\d]+)/(\d+)\.html /News_Detail\.aspx\?c_id=$1&n_id=$2
RewriteRule /News/([-\d]+).html /News_List\.aspx\?c_id=$1
#二级域名重写配置
RewriteCond Host: (?!www)([^.]+).pifazhinan.cn
RewriteRule ^/ /Shop/Index\.aspx\?uname=$1 [I]
RewriteCond Host: (?!www)([^.]+).pifazhinan.cn
RewriteRule ^/Products/(\d+)\.html /Shop/product_detail\.aspx\?uname=$1&p_id=$2 [I]
这样,页面重写已经实现了,但是在被重写的页面提交表单时候,提交后重写效果会失效,直接跳转到原有的页面。这时候就需要用到微软提供的ActionlessForm.dll。
第四步:引用ActionlessForm.dll,将重写页面的<form runat="server"></form>表单代码,改成:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
<skm:Form id="Form1" method="post" runat="server"></skm:Form>
<skm:Form id="Form1" method="post" runat="server"></skm:Form>