Kentico 是不是允许带有问号的查询字符串?
Posted
技术标签:
【中文标题】Kentico 是不是允许带有问号的查询字符串?【英文标题】:Does Kentico allow query strings with question mark?Kentico 是否允许带有问号的查询字符串? 【发布时间】:2017-09-15 09:59:03 【问题描述】:我正在尝试将我的 ASPX 站点迁移到 Kentico,作为我任务的一部分,我正在迁移 URL。我需要保留我的 URL 结构,因此我需要保留如下所示的 URL:“foo.com/bar.aspx?pageid=1”。
我检查了页面的“URLs”属性尝试使用通配符、/bar/pageid- /bar/?pageid?-
等一些模式,但 Kentico 总是替换问号。
有没有办法通过管理界面实现这一点?
【问题讨论】:
【参考方案1】:我认为您在这里加入的概念很少。我将在这里开始你的行代码
/bar/pageid
- 如果您选择使用基于模式的动态 URL,pageid
是 Kentico 语言中的位置参数。因此,如果您的代码依赖于 pageid 参数来获取一些数据,那么 Kentico 将传递该值。例如,在/bar/420
的情况下,它会将 pageid 作为模板上的 420 个不同的 Web 部件传递
/bar/?pageid?
- 这将在请求 URL 上搜索查询字符串参数“pageid”并在此处替换其值。因此,如果您传递了foo.com/bar.aspx?pageid=366
,则生成的 URL 将为/bar/366
#1 是位置参数,#2 是 Kentico 解析查询字符串宏的方式。
我希望这可以澄清。
【讨论】:
【参考方案2】:默认情况下,Kentico UI 不会像您显示的那样处理添加带有 URL 参数的 URL 别名。 an article on the DevNet 用于 URL 重定向模块,其中包含可以导入到站点中的代码,以允许您在 Kentico UI 中执行这些重定向。我建议使用这种方法。
很遗憾,我不能分享代码示例,因为它是一篇文章,但它也有一个 link to download the code。这似乎目前仅针对 Kentico 8.2 进行编码,但我猜您可以根据需要做一些工作以使其适用于其他版本。
【讨论】:
【参考方案3】:您无需执行任何操作即可使用“foo.com/bar.aspx?pageid=1”网址。
在根目录下创建一个页面并将其命名为 bar,这样您将获得一个页面@foo.com/bar.aspx。 Kentico 和/或 .net 不在乎您在问号后添加什么内容,因此 foo.com/bar.aspx?pageid=1 将与 foo.com/bar.aspx?someparam=sdf 或 foo 一样有效.com/bar.aspx?id=1&p=3&t=3.
您可能(也可能不会)基于查询字符串实现某些功能(例如分页),因此它将解析查询字符串并以适当的方式操作。
【讨论】:
如果原始站点中有很多页面带有 'span.aspx?pageid=xxx' 之类的 url(它们不是一个文档的不同页面)并且我需要保持这种结构,我该怎么办? 您已经回答了您的问题:这是一个单独的页面,根据指定的查询字符串参数来操作/显示不同的数据/内容。以上是关于Kentico 是不是允许带有问号的查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章
Kentico,带有用于上传 CSV 的 Web 部件的模块