我正在建立一个在线商店,我正在尝试将每个商店子文件夹重定向到标准shop.php页面,该页面显示按网址路径过滤的结果作为类别。
结构是 mydomain.com/shop/category ,其中 category 是存储在数据库中的字段。
我使用以下php代码过滤结果:
$url = isset($_GET["url"]) ? $_GET["url"] : false;
if (!$url)
$where_products = "WHERE 1";
else
$where_products = "WHERE c.url = '$url'";
/* list products filtered by where clause */
$sql_products = "SELECT p.name FROM `product` p INNER JOIN `category` c ON p.id_category = c.id $where_products LIMIT 0,80";
现在我有以下.htaccess文件,用于将子文件夹重定向到正确的url变量:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^shop/([^/\.]+)/?$ shop.php?url=$1 [L]
现在一切正常,但当我尝试使用mydomain.com/shop/显示所有产品时,我收到了以下错误信息
在此服务器上找不到/ shop /
如果没有调用子文件夹,我该怎么办.htaccess文件才能正确重定向所有产品?
答案 0 :(得分:1)
调整正则表达式以支持0个或更多字符,而不是1 or more characters
。
尝试此规则:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^shop/([^/.]*)/?$ /shop.php?url=$1 [L]