我为网站编写了一个CMS。您可以创建页面并执行您期望的所有操作,但我只是想知道如果用户更改页面的URL,该怎么做。您需要为之前存储的URL执行301,但如果用户将URL更改10次,则必须考虑所有这些更改。
因此,您是否不允许用户更改URL或是否有其他方法?
由于
答案 0 :(得分:1)
我认为用户重命名页面不会经常发生,因此您可以负担得起对数据库中所有页面进行扫描,以查找对先前URI的引用。向用户显示一个警告页面,说“所有这些页面都有链接,由于此更改现在将转到404”,并为他们提供选项:
当然,你总是可以执行自动更新,并让用户也支持这一点,但这需要一个相当复杂的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>
的一行并重定向到那个。