我正在尝试使用URL rewrites并且无法使其发挥作用。
我有一个网址http://localhost/CToastWebsite/Rooms.aspx
,想要将其写为http://localhost/CToastWebsite/Rooms
我还有另一个网址http://localhost/CToastWebsite/Rooms.aspx?type=CreateRoom
,想写一下http://localhost/CToastWebsite/Rooms/CreateRoom
。
我该怎么做呢?
我已经尝试过,即使我将/styles/styles.css
与网址http://localhost/CToastWebsite/Rooms.aspx/CreateRooms
一起使用,我的CSS和图片也无效。这是使用像这样的URL的正确方法吗?
我卡住了,我搜索过文章,但是我找不到任何易于理解的内容,让CSS和图像能够正常工作。
我已设置urlrewritingnet.net
,但我遇到了问题。我设定了一个规则,如:
<urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<add name="Rewrite" virtualUrl="^~/Rooms"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Rooms.aspx"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>
所以我希望/rooms.aspx
更改为/rooms
,但页面会一直显示/rooms.aspx
。
现在会话状态错误
只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的\\部分中。
我在&lt; system.web&gt;中的web.config
文件中添加了标记:
<sessionState mode="InProc" timeout="20" cookieless="UseCookies" />
我在页面指令中设置了EnableSessionState="true"
。
我按照Stack Overflow问题 Error using session in IIS 7 让会话状态再次运行。
答案 0 :(得分:-1)
我个人不会使用具有整个页面名称的URL,加上其中的扩展名 - 虽然这使得问题很容易解决(因为我假设您仍在请求原始页面),但在我看来,打败URL重写的重点。
.NET有很多URL重写实现,很容易配置和使用。
您可以使用工具查看请求的去向。 Internet Explorer的一个常用选项是IE HTTP Headers - 这对于查看浏览器的重定向位置通常很有用。这可以帮助您确定CSS和图像的请求位置。
Scott Hanselman也有post about how to do this in IIS 7。
Stack Overflow上还有很多示例 - 请查看右下角的 Related 链接以获取示例。
如果你想弄清楚出了什么问题,你可能还想发布一些关于如何进行重写的代码示例。