【问题标题】:Multiple Dynamic SEO/shortened URLs in PHPPHP 中的多个动态 SEO/缩短 URL
【发布时间】:2011-09-22 03:47:19
【问题描述】:

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

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

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

我知道 mod-rewrite 足以将 domain.com/XXXX 转换为 domain.com/index.php?slug=XXXX,但是从那里开始我有点难过。 index.php 可以对用户进行数据库查找和 header() 到实际 url,但 slug-url 需要留在地址栏中。

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

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

【问题讨论】:

    标签: php url mod-rewrite seo


    【解决方案1】:

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

    另外,我不会使用header(),我会让您的索引页面成为处理页面。要么这样,要么改用include() 方法。

    【讨论】:

    • 认为 OP 希望将 URL 保留为 domain.com/XXXX 但显示目标页面,可能类似于 domain.com/pages/username/ xxx.php
    【解决方案2】:

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

    index.php 有什么理由不能充当前端控制器,而不是重定向它只是显示页面?你应该可以include这个页面。


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

    【讨论】:

    • 我在某处读到了不能包含在 GET 变量中的内容。我想我可以将变量带入范围然后包含。每个页面还需要一个对话线程,我可能不得不重新考虑这一点。它开始看起来像 wordpress。
    • 好点。我认为重定向到新的 URL 比保留 slug 更有意义。这是人们更习惯的。例如请点击此链接:stackoverflow.com/q/6470359/49376
    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多