Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
htaccess-为php编写重写规则_Php_.htaccess - Fatal编程技术网

htaccess-为php编写重写规则

htaccess-为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上的一个文件夹中,然后我想如下构造url

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文件放入的位置??如果希望捕获组是可选的,则至少需要三条规则。另请参阅:/