当前位置:编程学习 > C#/ASP.NET >>

WIN7企业版+IIS7+URLREWRITE2下无法URL重写,求指点

头一次来CSDN问问题,程序是好多年前的破程序了,也不是自己写的。公司弄服务器,挂新网站,所以我拿破程序测试下相关配置,但是发现在这个环境下,我没法实现URL重写,重定向倒是可以(URLREWRITEMODEL的模板测试),想不出问题出在哪,请高人分析分析。。。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
        <appSettings>
                <!--网站安装密码-->
                <add key="installpassword" value="gulifeng_aoscc" />
                <!--连接字符串-->
                <add key="conn" value="Data Source=;Initial Catalog=;User ID=;Password=" />
                <!--编辑器的上传路径-->
                <add key="FCKeditor:UserFilesPath" value="/upload/editor/" />
        </appSettings>
        <system.web>
                <!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
                <compilation debug="true">
                        <assemblies>
                                <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
                                <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
                        </assemblies>
                </compilation>
                <!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
                <authentication mode="Windows" />
                <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
   -->     
                <httpRuntime maxRequestLength="102400" />
                <pages enableEventValidation="true" validateRequest="false" enableViewStateMac="false">
                        <controls>
                                <add tagName="cnleft" tagPrefix="aos" src="~/cn/controls/pageleft.ascx" />
                                <add tagName="enleft" tagPrefix="aos" src="~/en/controls/pageleft.ascx" />
                        </controls>
                </pages>

<customErrors mode="Off" />

        </system.web>

        <system.webServer>
                <defaultDocument>
                        <files>
                                <add value="index.aspx" />
                        </files>
                </defaultDocument>

        <rewrite>
            <rules>
                <rule name="r1">
                    <match url="^cn/product/([^/]+)-([^/]+)\.html$" />
                    <action type="Rewrite" url="cn/product.aspx?{R:1}={R:2}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>
</configuration> IIS7 WIN7 URLrewrite --------------------编程问答-------------------- 是IIS配置方面的问题,自己先研究研究。。。 --------------------编程问答-------------------- 开始以为是用的framework2经典模式的关系,后来改为framework4的经典和集成模式,均不报错,但是均不见重写效果,小弟求人指点!!!!! --------------------编程问答-------------------- webconfig里面看上去没什么问题,楼主你调用webconfig的代码怎么写的? --------------------编程问答--------------------
引用 3 楼 qiujialongjjj 的回复:
webconfig里面看上去没什么问题,楼主你调用webconfig的代码怎么写的?

程序是拿的几年前别人的程序,只是用来配置服务器用的,自己也不太懂,碰到了URL重写的问题。这个和你输的调用没关系吧,只是一个服务器重写。我想要么用老的urlrewriter.dll来写? --------------------编程问答-------------------- URL重写是可以的,在地址栏直接输入重写后的地址能够访问到。但是现在网页各链接直接还是动态链接的方式,点下就又取到动态链接地址了。是什么问题? --------------------编程问答--------------------
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了 --------------------编程问答--------------------
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了


不是这个意思,我的意思是我想让客户端浏览器看到的所有页面上的链接都变成静态化,1不该后台代码2不通过JS代码。在服务器上能不能配置实现呢?IIS7里面的URLREwrite组件有个出站规则,不知道我理解的对不对,就是通过修改这个规则,实现要求。不过目前编辑出站规则后报错。
--------------------编程问答-------------------- 上面是压缩问题,我把压缩取消就好了。。。 --------------------编程问答--------------------
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

不是这个意思,我的意思是我想让客户端浏览器看到的所有页面上的链接都变成静态化,1不该后台代码2不通过JS代码。在服务器上能不能配置实现呢?IIS7里面的URLREwrite组件有个出站规则,不知道我理解的对不对,就是通过修改这个……


aspx不能被去掉,要新增一项,后缀为.html,那个配置与.aspx一样,只是后缀不一样 --------------------编程问答--------------------
引用 9 楼 liuchaolin 的回复:
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

不是这个意思,我的意思是我想让客户端浏览器看到的所有页面上的链接都变成静态化,1不该后台代码2不通过JS代码。在服务器上能不能配置实现呢?IIS7里面的URLREwrite组件有个出站规……


我意思不是应用程序扩展名映射。我要实现的就是网站所有动态连接显示成我设置规则的URL。
我用的是IIS7的URL重写模块。拿模板生成了一个测试无效。不知道我理解的对不对,设置好正确的出站入站URL重写规则后就是我要的效果????

--------------------编程问答--------------------
引用 10 楼 zbt1008 的回复:
引用 9 楼 liuchaolin 的回复:
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

不是这个意思,我的意思是我想让客户端浏览器看到的所有页面上的链接都变成静态化,1不该后台代码2不通过JS代码。在服务器上能不能配置实现呢?……


这是不可能的,你那是生成全静态网页,已经不是伪静态能做的事了 --------------------编程问答--------------------
引用 11 楼 liuchaolin 的回复:
引用 10 楼 zbt1008 的回复:
引用 9 楼 liuchaolin 的回复:
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

不是这个意思,我的意思是我想让客户端浏览器看到的所有页面上的链接都变成静态化,1不该后台代码2……




那这个编辑出站规则是什么意思????里面选项都是链接相关勾选项。。。 --------------------编程问答--------------------
引用 12 楼 zbt1008 的回复:
引用 11 楼 liuchaolin 的回复:
引用 10 楼 zbt1008 的回复:
引用 9 楼 liuchaolin 的回复:
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

不是这个意思,我的意思是我想让客户端浏览器看……


应该是过滤之类的吧,就是允许提交哪些参数,参数是什么格式的 --------------------编程问答-------------------- 那我现在这样岂不是压根就没用?只有直接输入伪静态的URL才行,页面中的链接还是原始动态链接,一点就歇菜了??? --------------------编程问答--------------------
引用 13 楼 liuchaolin 的回复:
引用 12 楼 zbt1008 的回复:
引用 11 楼 liuchaolin 的回复:
引用 10 楼 zbt1008 的回复:
引用 9 楼 liuchaolin 的回复:
引用 7 楼 zbt1008 的回复:
引用 6 楼 liuchaolin 的回复:
IIS没有配置好吧,默认情况下是不能把aspx直接变成html来使用的

这样的缺点就是真实的html无法访问了

……


谢谢,想明白了,还是要改下程序。之前一直以为只改config就可以实现所有链接静态化。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,