【发布时间】:2013-04-02 06:25:14
【问题描述】:
我意识到这个问题已经被很多人打死了,但大多数答案似乎都是针对一个非常具体的案例,只适合他们的需求,到目前为止我还没有找到合适的解决方案(至少,据我所知)。
我的问题是我试图让我的网站将 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”上;基本上美化链接并使其更具可读性。唯一的问题是,我正在尝试从数据库中读取它
【问题讨论】:
-
+1 用于清楚地解释手头的问题。
标签: php mysql .htaccess mod-rewrite rewritemap