如何在 DotNetNuke 中创建持久的虚荣 URL?

发布于 2024-09-26 21:20:10 字数 608 浏览 2 评论 0原文

我不知道在 DotNetNuke 中实现自定义持久虚荣 URL(我的术语,不确定这是否是真正的名称)的解决方案。有谁知道解决方案吗?它可以是配置核心、使用第三方模块,或者是如何从头开始编写的建议。

这就是我的想法:

  1. 我想向人们指出: http://mywebsite.com/awesome
  2. 我希望底层 URL 为 http://mywebsite.com/genericpage.aspx?key =awesome&etc=etc
  3. 希望 URL 重定向。我希望用户只能看到 http://mywebsite.com/awesome

本质上,我设想管理员能够创建这些虚 URL 并指定虚 URL 是什么以及底层 URL 是什么。

I'm not aware of a solution for implementing custom persistent vanity URLs (my term, not sure if thats what they're really called) in DotNetNuke. Does anyone know of a solution? It can be configuring the core, using a third party module, or a suggestion of how to write it from scratch.

Here is what I'm thinking:

  1. I want to point people to: http://mywebsite.com/awesome
  2. I want the underlying URL to be http://mywebsite.com/genericpage.aspx?key=awesome&etc=etc
  3. I don't want the URL to redirect. I want the user to see http://mywebsite.com/awesome only.

Essentially I'd envision an administrator being able to create these vanity URLs and specify what the vanity URL is and what the underlying URL is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2024-10-03 21:20:10

最接近的开箱即用的方法是在 DotNetNuke 根目录中的 SiteUrls.config 中定义您的友好 URL。

这样:

  1. 你向人们指出:
    http://mywebsite.com/awesome.aspx
  2. 您有一个底层网址
    http://mywebsite.com/Default.aspx?tabid=ID&etc= etc
  3. 用户看到:
    http://mywebsite.com/awesome.aspx

主要限制是您将拥有 .aspx 扩展名。

SiteUrl.config 规则如下所示:

<RewriterRule>
    <LookFor>.*/awesome.aspx</LookFor>
    <SendTo>~/default.aspx?tabid=ID&etc=etc</SendTo>
</RewriterRule>

重写器规则将传入 url 与 LookFor 部分中的正则表达式匹配,并将其发送到 SendTo 部分中的基础 url。您需要小心 XML转义字符 '&'在查询字符串参数中。

诸如 URL Master 之类的第 3 方扩展提供了更细粒度的控制,您可以拥有基于页面名称的全局友好 URL 方案,带或不带 .aspx 扩展名。不过,如果您有具有 URL 依赖项的自定义模块,那么简单的“一次一个 url”方法可能会更安全。

The closest thing, out of the box, is to define your friendly urls in SiteUrls.config found in the DotNetNuke root.

This way:

  1. you point people to:
    http://mywebsite.com/awesome.aspx
  2. you have an underlying URL
    http://mywebsite.com/Default.aspx?tabid=ID&etc=etc
  3. users see:
    http://mywebsite.com/awesome.aspx

Main restriction is that you will have an .aspx extension.

SiteUrl.config rules look like this:

<RewriterRule>
    <LookFor>.*/awesome.aspx</LookFor>
    <SendTo>~/default.aspx?tabid=ID&etc=etc</SendTo>
</RewriterRule>

Rewriter rule matches incoming url to a regular expression in the LookFor section, and sends it to an underlying url in the SendTo section. You need to be careful with the XML escape character '&' in the querystring parameters.

3rd party extensions like URL Master provide much more fine grained control, and you can have a global friendly url scheme based on page names, with or without .aspx extensions. Nevertheless, a simple "one url at a time" approach can be safer if you have custom modules with URL dependencies.

寻找我们的幸福 2024-10-03 21:20:10

ActiveSocial 支持这些,我想我在 IFinity 的 URL Master 2.x 版本中看到了一些关于对此的支持的信息,但我现在找不到任何内容。

ActiveSocial supports these and I thought I saw something about support for this in Version 2.x of IFinity's URL Master, but I can't find anything on it now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文