【问题标题】:Dynamic .htaccess file in PHPPHP中的动态.htaccess文件
【发布时间】:2011-08-18 11:31:27
【问题描述】:

作为项目的一部分,我们目前正在考虑将 SEO URL 添加到页面。这是针对在线商店的,网站中有多种类型的内容:静态页面(例如“关于我们”、“隐私政策”、产品类别和产品页面。

我们在 MySQL 表中存储了大量的 URL 存根,如下所示:

+-----------------+------------------+----------------+
|    url_stub     | destination type | destination_id |
+-----------------+------------------+----------------+
| privacy-policy/ |       page       |       1        |
+-----------------+------------------+----------------+
|   category-1/   |     category     |       2        |
+-----------------+------------------+----------------+
|  my-product-1/  |      product     |       1        |
+-----------------+------------------+----------------+

提供这些服务的一种选择是拥有一个能够处理所有内容的巨大 index.php 文件,但是,我们更希望有单独的页面来提供不同的内容类型。例如,任何带有destination_typepage 的东西都会转到page.php?id=#,等等。因此,对于上表中的示例,这些示例将按如下方式进行:

privacy-policy/ = page.php?id=1
category-1/     = category.php?cat=2
my-product-1/   = product.php?prod=1

我的问题是:实现这一目标的最佳做法是什么?我们不想在 SEO 友好的 URL 中的任何位置包含 destination_id。我在想也许可以创建一个动态的 .htaccess 文件,它使用mod_rewrite 即时输出所有内容,但我找不到任何解决方案。

我们将不胜感激地收到任何帮助或 cmets。

【问题讨论】:

    标签: php mysql apache .htaccess mod-rewrite


    【解决方案1】:

    简短的回答是“不,你必须每次都重写它”,但这个老问题应该回答你的问题 :) Can I make a dynamic .htaccess file?

    否则,复杂/愚蠢/无用的想法:

    RewriteRule /(.*)  /index.php?url=$1
    

    然后在你的 PHP 文件中

    if (isset($_GET['url']))
    {
      //Parse url and echo page according to requested url
    }
    

    【讨论】:

    • 谢谢乔希。那么,有什么解决办法吗?
    • 如果您想使用数据库进行重写,则为您提供最动态的重写。
    猜你喜欢
    • 2011-09-15
    • 2010-11-13
    • 2021-05-09
    • 2011-11-09
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多