htaccess-为php编写重写规则
我正在努力解决如何编写重写规则,以便为我当前正在构建的产品目录的多个字段工作 我的文件存储在url.com/catalog上的一个文件夹中,然后我想如下构造urlhtaccess-为php编写重写规则,php,.htaccess,Php,.htaccess,我正在努力解决如何编写重写规则,以便为我当前正在构建的产品目录的多个字段工作 我的文件存储在url.com/catalog上的一个文件夹中,然后我想如下构造url url.com/catalog/CATEGORY url.com/catalog/CATEGORY/SUB-CATEGORY url.com/catalog/CATEGORY/SUB-CATEGORY/PRODUCT RewriteRule ^(.*)/(.*)/(.*)/(.*)$ catalog/page.php?cat=$2&
url.com/catalog/CATEGORY
url.com/catalog/CATEGORY/SUB-CATEGORY
url.com/catalog/CATEGORY/SUB-CATEGORY/PRODUCT
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ catalog/page.php?cat=$2&subcat=$3&product=$4
其中类别、子类别或产品是存储它们的数据库的URI。这将发送到
page.php?cat=CATURI&subcat=SUBCATURI&product=PRODUCTURI
我使用了多个线程和教程,并提出了以下内容
url.com/catalog/CATEGORY
url.com/catalog/CATEGORY/SUB-CATEGORY
url.com/catalog/CATEGORY/SUB-CATEGORY/PRODUCT
RewriteRule ^(.*)/(.*)/(.*)/(.*)$ catalog/page.php?cat=$2&subcat=$3&product=$4
这根本不起作用,我需要它,因为子猫和产品并不总是必须通过
对此有何建议?您可以将url划分为以下元素:目录、类别、子类别、产品。 使用此功能:
function get_path_elements() {
if (!isset($_SERVER['PATH_INFO'])) { return null; }
$path_info = $_SERVER['PATH_INFO'];
$path_elements = explode('/', $path_info);
array_shift($path_elements);
return $path_elements;
}
之后的工作与您所做的工作非常相似。您是在扩展现有项目吗?而不是。*您可以使用。*吗?而不是非reedy匹配?文件中有吗??RewriteBase上的RewriteEngine/以及您将htaccess文件放入的位置??如果希望捕获组是可选的,则至少需要三条规则。另请参阅:/