在CMS中更改页面URL的注意事项

时间:2009-11-07 14:37:54

标签: asp.net asp.net-mvc

我为网站编写了一个CMS。您可以创建页面并执行您期望的所有操作,但我只是想知道如果用户更改页面的URL,该怎么做。您需要为之前存储的URL执行301,但如果用户将URL更改10次,则必须考虑所有这些更改。

因此,您是否不允许用户更改URL或是否有其他方法?

由于

3 个答案:

答案 0 :(得分:1)

我认为用户重命名页面不会经常发生,因此您可以负担得起对数据库中所有页面进行扫描,以查找对先前URI的引用。向用户显示一个警告页面,说“所有这些页面都有链接,由于此更改现在将转到404”,并为他们提供选项:

  • 按照您的想法建立301
  • 自动更新已识别的链接
  • 不要重命名页面
  • 不要进行任何更改

当然,你总是可以执行自动更新,并让用户也支持这一点,但这需要一个相当复杂的WAL设置,我可以从经验告诉你是一个巨大的痛苦。

只需我0.02美元!

答案 1 :(得分:0)

如果您担心由301引起的10个连续请求,您可以让脚本定期浏览所有“重定向页面”,找出它们现在指向的最新URL,并将它们直接指向那里而不进行中间重定向

或者,保留原始网址列表以及最新网址,以便在网址再次更改时更新所有网址。

答案 2 :(得分:0)

相当多的CMS只是不允许更改永久链接,因此如果您担心不遵守某些规则,您将不会是第一个不允许它的人。

如果您确实实现了更改固定链接(例如更改标题),则必须为每个内容项存储N个标题,然后重定向到ID最高的标题。

  

<强> ContentItemTitle
   id - 自动
  增量文字 - 唯一约束
   contentId - 参考

这与 ContentItem 链接为1对1的关系。

然后,当您收到<text>的HTTP请求时,只需查找与<contentId>共享相同<text>的所有ContentItemTitle行,然后选择具有最高<id>的一行并重定向到那个。