我有一个不使用友好 URL 的网站,我想改变它。到目前为止,我的链接是这样http://www.example.com/?l=EN&m=o36ASkkEVi
的,其中l
变量包含查看语言,并且m
包含查看类别(菜单)。因为菜单项的 id 是唯一的,所以到目前为止我没有遇到任何问题,即使它是子菜单项。但是现在我试图将其更改为友好 URL,我遇到了以下问题:
首先,菜单项的友好标题不是唯一的,因为(至少在我的项目中)不同的主菜单项中可以有多个具有相同标题的子菜单项(类别)。例如,两个菜单项Camera
都有Mobile Phone
一个名为 的子菜单Instructions
。所以我的目标是让最终的友好 URL 类似于http://www.example.com/EN/Mobile-Phone/Instructions
和http://www.example.com/EN/Camera/Instructions
。
其次,菜单的“深度”没有预定义。因此,一个类别(菜单)可能有无限的子类别。
过去,对于小型网站,我使用 htaccess 的静态重写(每个重定向一个规则),但现在,文章和类别不可数,我不能这样做。我想在每篇文章或菜单创建和编辑时重写 .htaccess 文件,以便为每种情况制定规则,但我想在某些时候这会产生巨大的 .htaccess。该解决方案是否合法?
我的问题是这样的。如何在 .htaccess 中制定规则以始终将我发送到index.php
而不是在我编写时尝试查找网站的子文件夹http://www.example.com/EN/Camera/Instructions
但保持 URL 对 PHP“可见”?
我知道之后我可以explode('/', $_SERVER['REQUEST_URI'])
通过从数据库中选择正确的语言和文章或菜单来使用并实现我的目标,但我没有或无法弄清楚如何做第一部分的方法。
此外,.htaccess 有什么方法可以让我http://www.example.com/
在数组之后的所有项目并将其作为变量传递给.htaccessindex.php
吗?