我有不同的网址(在.htaccess中设置),现在我想为它添加更多功能。
例如:
这将显示使用默认排序的部分页面(项目列表),第二个是页码,第三个和第四个是排序依据和排序依据。在这种情况下,默认情况下按名称desc排序。
现在,我也想要:
这是部分,产品ID和产品名称(因此我可以通过id查询效率)
我到目前为止:
RewriteEngine On
RewriteRule ^([^/]+)$ index.php?section=$1
RewriteRule ^([^/]+)/([0-9]+)$ index.php?section=$1&pagenum=$2
RewriteRule ^([^/]+)/([0-9]+)/([^/]+)$ index.php?section=$1&pagenum=$2&orderby$3
这适用于一个但不是两个,任何建议?
答案 0 :(得分:4)
以下是您可以做的事情:
RewriteEngine On
RewriteBase /
您可以将其用作常用功能:
RewriteRule ^([^/]+)$ index.php?section=$1 [L,NC]
RewriteRule ^([^/]+)/([0-9]+)$ index.php?section=$1&pagenum=$2 [L,NC]
默认情况下,您不希望显示没有名称的产品(假设您需要SEO网址)
现在针对特定页面:
RewriteRule ^([a-z0-9\-]+)/([0-9]+)/([a-z0-9\-]+)/?$ product.php?section=$1&id=$2&name=$3 [L,NC]
请注意此处的文件名。因为如果你有3个元素(section / id / name)意味着你想要显示一个产品。
现在,列表/订单具体
RewriteRule ^([a-z0-9\-]+)/([0-9]+)/([a-z0-9\-]+)/(asc|desc)/?$ list.php?section=$1&pagenum=$2&sortcolumn=$3&orderby=$4 [L,NC]
另请注意此处的文件名。如果在URL的末尾添加desc或asc,则表示您将显示产品列表。最后一个参数将允许在产品和产品列表之间切换。当然,您必须始终使用asc
或desc
关键字。您可以使用的另一种方法是使用单词list
或任何其他相关名称来显示列表示例:
RewriteRule ^list/([a-z0-9\-]+)/([0-9]+)/([a-z0-9\-]+)/(asc|desc)?$ list.php?section=$1&pagenum=$2&sortcolumn=$3&orderby=$4 [L,NC]
在这种情况下,所有以list
开头的规则都会显示产品列表而不是产品本身