由于购买的空间可以放多个网站,为了便于管理,就为每个网站在根目录下建立了一个子文件夹(其实当前也就是存放了一个网站)。例如,当前网站的所有页面文件和配置文件全部存放于"abc"子文件夹中(程序文件位为abc/bin/中)。
页面的链接全部从数据库的URL字段读取,但最终形成的URL地址不是"http://www.ABC.com/Products/",而是"http://www.ABC.com/abc/Products/",比预期多了程序根目录的文件夹名称。。。
URL重写后生成的伪静态地址也是这样,浏览器地址栏中为"http://www.ABC.com/abc/Products/"。如果更改,能搞成"http://www.ABC.com/Products/" ?
谢谢!
P.S.:目前流行的URLRewirting.dll + web.config配置正则表达的方式好像可以,下载了源代码研究了一晚上,没瞅明白是怎么把程序目录的名称去掉的。。。主要是。。。不懂C#
13 个解决方案
#1
asp.net的话建议楼主用isapi rewrite啊
#2
to 楼主:
用重写及正则其实就是把http://www.ABC.com/abc/Products/这样的路径,替换成http://www.ABC.com/Products/这样的路径。
正则很简单。如果楼主其他都弄好了,要正则话,我可以给你写一个。
用重写及正则其实就是把http://www.ABC.com/abc/Products/这样的路径,替换成http://www.ABC.com/Products/这样的路径。
正则很简单。如果楼主其他都弄好了,要正则话,我可以给你写一个。
#3
soonfei:
其他的都弄好了,就是那个abc文件夹让人烦。如能提点,不胜感激!
另请教一个问题:
还写了一个名为SitemapHandler的HttpHandler处理程序,主要用于搜索引擎。计划是先将http://www.ABC.com/sitemap.xml提交给搜索引擎,在蜘蛛们造访时,调用处理程序,根据数据库内容生成sitemap.xml,而这个文件其实是不存在的。处理程序已在web.config注册过,在本地IIS上测试没问题。但上传到空间后发现处理程序不管用,该如何解决?
P.S.:空间是.net 4.0环境,安装IIS7.0,程序池是兼容(或说经典,即Classic),按理说应该没有问题。
其他的都弄好了,就是那个abc文件夹让人烦。如能提点,不胜感激!
另请教一个问题:
还写了一个名为SitemapHandler的HttpHandler处理程序,主要用于搜索引擎。计划是先将http://www.ABC.com/sitemap.xml提交给搜索引擎,在蜘蛛们造访时,调用处理程序,根据数据库内容生成sitemap.xml,而这个文件其实是不存在的。处理程序已在web.config注册过,在本地IIS上测试没问题。但上传到空间后发现处理程序不管用,该如何解决?
P.S.:空间是.net 4.0环境,安装IIS7.0,程序池是兼容(或说经典,即Classic),按理说应该没有问题。
#4
肯定能改
sql查找 匹配 替换 成你想要的格式
可以在数据库操作
#5
#6
begin:(http:\/\/www\.ABC\.com\/).+?(Products\/)
end: $1$2
end: $1$2
#7
放在哪一部分执行?
页面.aspx文件中放置了一个Literal控件. 程序中根据数据表内容生成Literal的Text值. 部分代码如下:
Dim modelList as New List (of SiteMap.Model)
modelList = BLL.SiteMap.GetAllItems
ltlMenu.Text= "<ul>"
For each myModel as SiteMap.Model In modelList
ltlMenu.Text +="<li><a title='" & mymodel.Title & "' href='" & ResolveUrl(myModel.URL) & "'>" & mymodel.Title & "</a>"
Next
ltlMenu.Text+="<ul>"
...
最终页面上形成的URL是 http://www.ABC.com/abc/Produts/Food/这种.
与使用Literal服务器控件不关系吧?
#8
没人理了...
#9
我去。。还是VB的!~。。
#10
VB的咋了...
#11
asp.net4.0时代了啊,还要用第三方组件吗??
用自带的路由功能啦,动态编程做规则也很方便。
http://www.cnblogs.com/xray2005/archive/2011/07/03/2096938.html
用自带的路由功能啦,动态编程做规则也很方便。
http://www.cnblogs.com/xray2005/archive/2011/07/03/2096938.html
#12
唉,我的问题仅仅是如何去掉程序文件夹的名称...怎么越来越复杂...
回到起点, 如果使用第三方URLRewriting组件(就是web.config是注册并添加正则表达的那个), 能否实现
Lookup: ~/abc/(正则不会写,意思就是abc开头的,不管后面是什么内容)
Sendto: XXX (仅去掉/abc,保留后面不变)
能否实现?谢谢!
回到起点, 如果使用第三方URLRewriting组件(就是web.config是注册并添加正则表达的那个), 能否实现
Lookup: ~/abc/(正则不会写,意思就是abc开头的,不管后面是什么内容)
Sendto: XXX (仅去掉/abc,保留后面不变)
能否实现?谢谢!
#13
唉,最终还是自己搞定了...方法之简单, 无以言表. 换一个思路, 啥都解决了. 谢谢楼上各位
#1
asp.net的话建议楼主用isapi rewrite啊
#2
to 楼主:
用重写及正则其实就是把http://www.ABC.com/abc/Products/这样的路径,替换成http://www.ABC.com/Products/这样的路径。
正则很简单。如果楼主其他都弄好了,要正则话,我可以给你写一个。
用重写及正则其实就是把http://www.ABC.com/abc/Products/这样的路径,替换成http://www.ABC.com/Products/这样的路径。
正则很简单。如果楼主其他都弄好了,要正则话,我可以给你写一个。
#3
soonfei:
其他的都弄好了,就是那个abc文件夹让人烦。如能提点,不胜感激!
另请教一个问题:
还写了一个名为SitemapHandler的HttpHandler处理程序,主要用于搜索引擎。计划是先将http://www.ABC.com/sitemap.xml提交给搜索引擎,在蜘蛛们造访时,调用处理程序,根据数据库内容生成sitemap.xml,而这个文件其实是不存在的。处理程序已在web.config注册过,在本地IIS上测试没问题。但上传到空间后发现处理程序不管用,该如何解决?
P.S.:空间是.net 4.0环境,安装IIS7.0,程序池是兼容(或说经典,即Classic),按理说应该没有问题。
其他的都弄好了,就是那个abc文件夹让人烦。如能提点,不胜感激!
另请教一个问题:
还写了一个名为SitemapHandler的HttpHandler处理程序,主要用于搜索引擎。计划是先将http://www.ABC.com/sitemap.xml提交给搜索引擎,在蜘蛛们造访时,调用处理程序,根据数据库内容生成sitemap.xml,而这个文件其实是不存在的。处理程序已在web.config注册过,在本地IIS上测试没问题。但上传到空间后发现处理程序不管用,该如何解决?
P.S.:空间是.net 4.0环境,安装IIS7.0,程序池是兼容(或说经典,即Classic),按理说应该没有问题。
#4
肯定能改
sql查找 匹配 替换 成你想要的格式
可以在数据库操作
#5
#6
begin:(http:\/\/www\.ABC\.com\/).+?(Products\/)
end: $1$2
end: $1$2
#7
放在哪一部分执行?
页面.aspx文件中放置了一个Literal控件. 程序中根据数据表内容生成Literal的Text值. 部分代码如下:
Dim modelList as New List (of SiteMap.Model)
modelList = BLL.SiteMap.GetAllItems
ltlMenu.Text= "<ul>"
For each myModel as SiteMap.Model In modelList
ltlMenu.Text +="<li><a title='" & mymodel.Title & "' href='" & ResolveUrl(myModel.URL) & "'>" & mymodel.Title & "</a>"
Next
ltlMenu.Text+="<ul>"
...
最终页面上形成的URL是 http://www.ABC.com/abc/Produts/Food/这种.
与使用Literal服务器控件不关系吧?
#8
没人理了...
#9
我去。。还是VB的!~。。
#10
VB的咋了...
#11
asp.net4.0时代了啊,还要用第三方组件吗??
用自带的路由功能啦,动态编程做规则也很方便。
http://www.cnblogs.com/xray2005/archive/2011/07/03/2096938.html
用自带的路由功能啦,动态编程做规则也很方便。
http://www.cnblogs.com/xray2005/archive/2011/07/03/2096938.html
#12
唉,我的问题仅仅是如何去掉程序文件夹的名称...怎么越来越复杂...
回到起点, 如果使用第三方URLRewriting组件(就是web.config是注册并添加正则表达的那个), 能否实现
Lookup: ~/abc/(正则不会写,意思就是abc开头的,不管后面是什么内容)
Sendto: XXX (仅去掉/abc,保留后面不变)
能否实现?谢谢!
回到起点, 如果使用第三方URLRewriting组件(就是web.config是注册并添加正则表达的那个), 能否实现
Lookup: ~/abc/(正则不会写,意思就是abc开头的,不管后面是什么内容)
Sendto: XXX (仅去掉/abc,保留后面不变)
能否实现?谢谢!
#13
唉,最终还是自己搞定了...方法之简单, 无以言表. 换一个思路, 啥都解决了. 谢谢楼上各位