2009-10-05 89 views
0

我重写URL http://www.tworiverstaines.co.ukhttp://www.tworiverstaines.co.uk/TwoRivers/很奇怪的URL重写问题?

当网站第一次加载的重写工作正常与所有超链接工作正常,包括路径App_Themes文件夹等

然而,当您单击显示的Default.aspx在Default.aspx(或页面请求)载入所有超链接并将路径从/Default.aspx更改为/TwoRivers/Default.aspx时,在主页链接(或任何其他)上,因此当您单击超链接时,它将被破坏为重写规则将带您到www.tworiverstaines.co.uk/TwoRivers/TwoRivers/Default.aspx。

为了防止404错误,我添加了一个本地规则来重写/ TwoRivers/TwoRivers/to/TwoRivers /然而这不是一个好的解决方案,因为浏览器中的URL显示子文件夹和页面在/ Default .aspx和/TwoRivers/Default.aspx,可能会对搜索引擎造成重复的内容问题。

有没有人知道为什么会发生这种情况?

该网站可在http://www.tworiverstaines.co.uk

访问我显示在每个页面来显示路径的底部的头信息。

回答

0

这是因为你的表单标签中有你的action属性。你也重写那个表单标签吗?

在页面http://www.tworiverstaines.co.uk/Default.aspx你action属性包含

<form name="aspnetForm" method="post" action="TwoRivers/Default.aspx" id="aspnetForm"> 

如果不是,这里是一个解决方案:

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

下井 “处理ASP.NET回传与URL重写”

+0

感谢您的帮助亚瑟我已经实施上述,但这并没有纠正这个问题。 如果您导航到http://www.tworiverstaines.co.uk/ 操作路径为action =“/ TwoRivers/default.aspx” 资源的所有链接和路径都是正确的,即它们不包含“/TwoRivers /“只有动作url包含这个。 如果您导航到http://www.tworiverstaines.co.uk/Default.aspx 操作路径为action =“/ Default.aspx” 所有路径都不正确,它们包含“/ TwoRivers /”。 任何想法? 谢谢 丹 – McDotNet 2009-10-05 13:22:06

+0

你是如何实现URL重写的?参数“rebaseURL”是什么? – Arthur 2009-10-05 13:38:48

+0

看起来像您的ControlAdapter未注册。你有没有检查过App_Browsers/Form.browser文件? – Arthur 2009-10-05 15:06:31