PHP中的多个动态SEO/缩短URL


Multiple Dynamic SEO/shortened URLs in PHP

我有一个PHP系统,其中包含用户生成的页面,这些页面以复杂而不统一的层次结构排列。页面由用户创建,有些页面有子页面等。

我被要求添加一个缩短的url系统。因此,任何页面,在层次结构的任何一点,都可以通过domain.com/XXXX访问,其中XXXX可以是任何东西-我们对SEO不感兴趣,这背后的原因是它是一个非常受社交媒体驱动的项目,我们希望我们的用户能够在推特上/其他任何他们喜欢的页面的url。

我期待类似的东西;我们从AAAA开始,在创建每个页面时向ZZZZ前进。这些slug中的每一个都将与实际url一起存储在数据库中,例如domain.com/projects.php?p=32

我知道mod重写足以将domain.com/XXXX转换为domain.com/index.php?slug=XXXX,但从那里去哪里让我有点不知所措。index.php可以进行数据库查找,并将用户的头()指向实际的url,但slug url需要留在地址栏中。

在index.php中使用iframe会是个糟糕的主意吗?

我希望这很清楚,谢谢你的阅读!

如果在.htaccess重写规则的末尾使用[R=301]指令,它将充当重定向。这意味着,如果您访问domain.com/XXXX,它将显示domain.com/index.php?地址栏中的slug=XXXX。这就是你想要完成的行为吗?

另外,我不会使用header(),我会让你的索引页面成为处理页面。或者使用include()方法。

我认为使用iframe是一个糟糕的想法,会导致网站变得脆弱。

index.php不能充当前端控制器,所以不重定向它只显示页面,这有什么原因吗?你应该能够include页面。


或者,您是否可以不将domain.com/XXXX重写为domain.com/projects.php?slug=XXXX,并在projects.php的顶部进行slug->p转换?然后,转换只需要记录slug和页面ID,而不是slug和完整的URL。