所以,我知道这里和 Internet 上有很多这个主题。但大多数文章/问题都提到“静态”url 重写,例如:
www.site.com/products.aspx?category=Books
所以他们将其重写为
www.site.com/Products/Books
没关系,但我需要别的东西。
该站点就像一个 CMS,它具有不同类型的内容。
如今,要阅读标题为“StackOverflow 如何帮助您进行开发”的文章,您需要转到如下 URL。
www.site.com/viewContent.aspx?Id=1234
我想要实现的是:
www.site.com/Content/Articles/how-to-stackoverflow-helps-you-in-your-development
据我所知,我需要让 ASP .NET 参与其中,因为首先我需要检索文章(当然是它的标题),然后重写 URL。
但我想知道如果我转到那个 URL,ASP .NET 到底怎么知道如何获取那篇文章,它不包含任何地方的 id... 所以也许我可以接受类似的东西
www.site.com/Content/Articles/1234/how-to-stackoverflow-helps-you-in-your-development
我真的有点迷路了..我从来没有做过任何 URL 重写,我在谷歌上搜索了很多,但我找不到做我想做的事情的方法。也许我想要的不是所谓的 url 重写???我不知道……
该站点在 Windows 2003 Server、IIS6、ASP .NET 3.5 SP1 下运行 当然,我需要一个免费的解决方案,不能在 ISAPI mod 上花费 100 美元(此外我不知道那是否能满足我的需要)。
谢谢大家,如果这是一个重复的问题,我很抱歉,但我找不到它。
编辑:我不需要支持不需要重写的非 ASP.NET 文件(jpg、gif 等)。我只需要重写 viewContent 页面以将内容标题包含到 URL 中。
最佳答案
您可以使用新的 Routing ASP.Net 3.5 sp1 附带的具有干净的 URL。
这甚至可以在 Web 表单中完成,而不仅仅是 MVC。 (我自己做过)。参见 here和 here有关如何设置的示例。
您可以将文章的 Id 和标题放在 URL 中,并使 Id 成为用于搜索文章的实际参数。这就是 SO 所做的。尝试删除 URL 的问题,它会将您带到同一个地方。
即使您不使用 Id,您也可以将文章标题“how-to-stackoverflow-helps-you-in-your-development”传递给您的数据库并根据标题检索文章。
关于 IIS 6,这有点棘手,因为默认情况下 IIS 6 无法处理无扩展名的 URL。
有一些解决方法:
查看此 post其他可能的解决方案。
虽然第一个解决方案可能会出现性能问题,但如果您站点中的所有内容都在小型站点中通过 Asp.Net(甚至图像、css、.html ...),这应该无关紧要。我已经使用了这种方法并且没有任何主要的性能问题。我认为这是最简单的解决方案。这是 website我用它 build 的
希望对您有所帮助。
关于asp.net - 如何对 IIS6 下的现有 ASP .NET 3.5 Web 应用程序进行 SEO 友好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987871/
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r