我意识到这个问题已经被很多人问死了,但大多数答案似乎都是针对一个非常具体的案例,只适合他们的需求,到目前为止我还没有找到合适的解决方案(至少,据我所知)。
我的问题是我试图让我的网站将 URL 参数从 ID 重定向到实际字符串。
例如:
www.example.com/?category=1
将显示为:
www.example.com/software
尽管
www.example.com/?category=2
将显示为:
www.example.com/software/desktop
从我读到的内容来看,我应该研究一个 apache rewritemap,这就是我的困惑所在。我真的不想从一个平面 txt 文件中加载,因为我想让它尽可能动态,我已经读过我可以让它从 php 文件中读取并从 MySQL 数据库中读取,这就是我想要的。
问题在于我真的不太确定实现这一目标的正确方法是什么。RewriteMap文档仅在某种程度上涵盖了平面 .txt 文件,并没有通过 MySQL 实现。
所以基本上我要问的是是否有人可以解释如何实现我正在寻找的东西,或者至少为我指明正确的方向。遗憾的是,到目前为止我发现的大多数线程还没有太大帮助,但我可能已经通过了有用的线程。
如果它有帮助,现在,我的 MySQL 数据将被格式化为继承结构,如下所示:
ID | Title | Link | Parent
1 | Software | /Software/ | NULL
2 | Desktop Software | /Software/Desktop/ | 1
2 | Mobile Software | /Software/Mobile/ | 2
PS: 我应该补充一点,我发现的大多数解决方案都以此为例:
RewriteMap examplemap prg:/path/to/file.php
RewriteRule (.*) ${examplemap:$1}
然而,它从不提供有关该 file.php 中的内容以及它如何查询和返回值的信息。
编辑 我应该提到我在共享托管服务器上,而不是我自己的私人服务器上,所以我可能无法访问所有可能的选项
编辑 2 只是为了清楚起见:我要做的是让访问“example.com/software”的用户被视为在“example.com/?category=1”上; 基本上美化链接并使其更具可读性。唯一的事情是,我正在尝试从数据库中读取它