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 是不是允许带有问号的查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Hibernate 时如何打印带有参数值的查询字符串

Kentico,带有用于上传 CSV 的 Web 部件的模块

asp网站地址中的问号怎么去掉

如何通过 ODBC 查询名称带有问号的 MS Access 列?

URL 中的问号是查询字符串的一部分吗?

在oracle数据库中插入的冷僻字都会变成问号,这个怎么解决。