【问题标题】:mod rewrite, title slugs and htaccessmod重写,标题slugs和htaccess
【发布时间】:2011-02-11 01:19:52
【问题描述】:

我受邀为一个自 2005 年开始运行的网站提供一些 SEO 指导。我的问题是我想使用干净的 URL。

处理 URL 的代码隐藏在某个类文件中。而且有几千行代码,重写它是一件很困难的事。

所以我想,我已经浏览了所有产品并为它们创建了一个 slug 作为产品表中的一个字段。是否可以为 .htaccess 做一个中间文件之类的事情?

类似的东西

  1. /clean-slug-进来/
  2. .htaccess 捕捉到这一点并使用 slug.php 来查找 slug 的相关产品 ID。
  3. 然后 product.php?id=(ID.found.from.2) 被加载。

【问题讨论】:

    标签: php mysql mod-rewrite seo


    【解决方案1】:

    我想到了另一个解决方案:

    一切都保持不变,但 slug.php 包含在每个模块中,完成将 slug 转换为 id 的工作

    如果您已经在每个模块中包含了一些配置文件,那就更好了。

    【讨论】:

      【解决方案2】:

      您可以使用 PHP 脚本作为重写映射(参见 RewriteMap directive)。但这很困难。

      如果您将 slug 发送到您的 slug.php 脚本,从数据库中获取 ID,将 $_GET['id'] 设置为该值,然后包含 产品,则会更容易。 php 脚本。

      【讨论】:

        【解决方案3】:

        slug.php:

        $id="ID.found.from.2";
        include 'product.php';
        

        【讨论】:

        • 它的工作方式是一个文件完成所有工作。所以显示类别、购物车和显示产品。这正在扼杀它的 seo 潜力
        • @chris 这正是您所要求的。它与SEO无关。他们称之为“路由器”
        • 这是一个很好的解决方案,但您可能需要查看product.php,因为它现在直接获得$id,而不是通过$_GET
        • 你不能改变一个 $_GET 变量吗?又名 $_GET['var'] = 5?
        • 好的。确保将代码从可能的用户篡改中抽象出来
        【解决方案4】:

        您可以链接重写规则,但 AFAIK 无法在同一个请求中执行两个脚本并在第二个请求中使用 1 的输出作为参数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多