Url rewriting URL重写友好的URL不适用于新手程序员
我们在Windows 2012 R2、ColdFusion 11 Enterprise、IIS 8.5和SQL 2008上使用Microsoft的URL重写64位版本 请原谅我的多余和明显。详细地写是我知道如何表达观点的唯一方法。我希望不会太多 我已经搜索了这个网站,但是找不到一个暗示我做错了什么的答案 这是我的第一个问题: URL重写已经安装,并且似乎可以按照一些规则运行,但我无法让它按照我希望的方式使用友好的URL重写。这就是问题所在。我希望有人会使用与我相同的基本参数,看看他们是否在Windows或Windows服务器上遇到相同的问题 我们网站上的公告部分是使用SQL数据库表中的ID PK来指向 从sql表中的列表中发布,包含许多类别,如作业、事件、车库销售等。我知道,你们都知道 这对于业余爱好者来说是相当标准的。所以,正如您所知道的,这个URL方法不仅笨拙,可能会带来安全风险,而且不会 很容易让我格式化的网址,因为我想 从“选择”页面开始选择公告: www.domain.com/event/select.cfm 因此,当前,当单击select.cfm页面上的一个链接时,将显示从cfquery输出生成的列表 我获取此URL并转到查看页面以显示实际的个人公告: select.cfm和view.cfm都位于/event/内的同一目录中 链接的锚点:href=/event/view.cfm?id=ViewInfo.id,当然不带括号 除了我不想要的URL外,所有内容都显示良好,工作正常 显然,文件夹/event/不在web根目录下,公告目录是此规则应操作的唯一位置 我在sql表中使用的“ID”是JOBS类别中的23号公告。所有类别和公告仅在 这是一张桌子 为了获得更友好的URL,我更喜欢使用每个公告的“类别”和公告保存的当前“日期”,这 看起来很正常,对吧 除了我几乎是一个编程新手,我真的很犹豫来这里 无论如何,在尝试使用URL重写之前,我首先尝试这样做: www.domain.com/event/jobs/23/2015-12-2/view.cfm或一些变体。没有一件事是我想要的 真是一团糟 我很快了解到正斜杠需要硬盘上每个斜杠之间有一个实际的目录,我找不到绕过它的方法。我 为我的html synapse添加了另一个缺口。我不想无缘无故地创建成吨的文件夹和子文件夹。所以,我想通过使用 URL重写我可以这样做: www.domain.com/event/jobs-2015-12-2_3.html或一些疯狂的变体。几天后,我的大脑受了太多的伤害 我想通过这种方式,我摆脱了id=和.cfm文件,并添加了一个更有意义且更易于参考的类别。我 实际上可能会使用uniqueidentifier的一部分而不是PK ID,但这对于这个问题并不重要 所以我偶然发现了URL重写并安装了它 我打开了IIS8.5管理器,转到我正在使用的网站,转到/event/文件夹并单击URL重写。然后我选择了添加规则 和用户友好的URL。然后,我输入了其中一个公告的URL: /event/view.cfm?id=位于选项卡顶部,作为内部URL 我还努力编写完整的URL,只是为了测试:/event/view.cfm?id=23,但它们不起作用 对于每个测试,我在第二行输入第二个示例建议:/id/184/只是为了看看它是否有效 但事实并非如此。我检查了“web.config”文件,该文件将包含在/event/目录中,代码规则已经编写好 没错。但是当我点击view.cfm的链接时,URL并没有像我预期的那样发生变化。它仍然表明: www.domain.com/event/view.cfm?id=23 我尝试了我能想到的URL倒带的每一种组合,但我根本无法改变URL的链接,无论是什么 我所做的。我不明白 我知道我安装的URL重写正在工作,因为我使用另一条规则将所有发现的.htm文件转发到.cfm等效文件 当他们被发现时 我甚至修复了已安装的URL重写并重新启动,但这没有帮助。然后我卸载了URL重写并重新安装 重新启动。还是没有变化。它可以工作,但不与友好的URL重写。我显然做错了什么,但我完全不知所措 可能需要雇佣一个真正的程序员。这可能是我新工作的结束 所以,希望有人能引导我 在正确的方向。如果是这样,我承诺尽我所能学习和帮助他人 这是我的web.configUrl rewriting URL重写友好的URL不适用于新手程序员,url-rewriting,friendly-url,Url Rewriting,Friendly Url,我们在Windows 2012 R2、ColdFusion 11 Enterprise、IIS 8.5和SQL 2008上使用Microsoft的URL重写64位版本 请原谅我的多余和明显。详细地写是我知道如何表达观点的唯一方法。我希望不会太多 我已经搜索了这个网站,但是找不到一个暗示我做错了什么的答案 这是我的第一个问题: URL重写已经安装,并且似乎可以按照一些规则运行,但我无法让它按照我希望的方式使用友好的URL重写。这就是问题所在。我希望有人会使用与我相同的基本参数,看看他们是否在Win
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^event/view\.cfm$" />
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^([^=&]+)= ([^=&]+)$" />
</conditions>
<action type="Redirect" url="event/view/{C:1}/{C:2}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^event/view/([^/]+)/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="event/view.cfm?{R:1}={R:2}" />
</rule>
</rules>
<outboundRules>
<rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^(.*/)event/view\.cfm\?id=([^=&]+)$" />
<action type="Rewrite" value="{R:1}event/view/id/{R:2}/" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>