【发布时间】:2018-02-08 17:09:51
【问题描述】:
我正在使用 PHP5、MySQL 开发一个教育应用程序。我使用 Slim 作为框架来开发网站和移动应用程序的 API。
我有各种数据模型,例如问题、测验、主题、主题等。我当前的网站具有以下 URL 模式:
- www.site.com/subjects.php?subject_id=1
- www.site.com/topics.php?topic_id=2
- www.site.com/quizzes.php?id=3
我浏览了有关使用 Apache 进行 URL 重写的资源,.htaccess。但这对我来说仍然不是很清楚。我正在寻找一种解决方案,使我能够实现用户友好且不可预测的 url 链接。例如
- www.site.com/subjects/science
- www.site.com/topics/light-energy
- www.site.com/quizzes/check-your-grammar-skills
但是...这些数据取决于我的数据库。在不使用 laravel 之类的框架的情况下实现这一目标的最佳方法是什么。
【问题讨论】:
-
当然,到目前为止我们可以跟进。不清楚的是您的具体问题是什么。到目前为止,您没有显示任何代码,您自己的尝试,因此我们无法说出您在哪里遇到问题。而且你当然不只是在这里问问题让我们为你做你的工作,对吗?
-
您使用的是 Slim,对吗?你读过他们的这部分文档slimframework.com/docs/objects/router.html#how-to-create-routes 吗?
-
从您的示例中也不清楚在重写期间实际 ID 应该来自哪里。像“科学”或“光能”这样的词当然不是 ID。但是重写引擎无法猜测显然没有在 URL 中命名的 ID...
-
@VishalKumar “我正在使用”,但据我们所知,你不是 OP……
-
@VishalKumar 如果这些是数字 ID,那么它们尤其需要成为请求 URL 的一部分。如前所述:重写引擎无法以某种方式神奇地猜测您在 URL 中引用的特定 ID。如果该数字 ID 不是 URL 的一部分。我在下面添加了一个答案,解释了一种可能的典型方法。
标签: php mod-rewrite url-rewriting slim