这是我的.htaccess文件:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^products/([^/\.]+)/?$ /product.php?$1
RewriteRule ^category/([^/\.]+)/?$ /category.php?cat=$1&page=$2 [QSA,L]
我放入浏览器的链接是site.com/category/batteries/1/,其中电池是类别,1是页面。但是,我的网站只获得该类别(因此site.com/category/batteries/可以使用,但site.com/category/batteries/1/会返回404.)
category.php获取cat中传递的值,但不获取页面中的值。我一直在阅读这篇文章,但我无法理解我哪里出错了。
答案 0 :(得分:1)
您错过了一个捕获组,因此永远不会设置$2
。尝试:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^products/(.*+)/?$ product.php?$1
RewriteRule ^category/(.*+)/(\d+)/?$ category.php?cat=$1&page=$2 [QSA,L]
答案 1 :(得分:0)
更改正则表达式。只是在斜杠之间获取文本而不是试图找到数字给了我想要的结果。
RewriteRule ^category/([^/]+)/([^/]+)/? /category.php?cat=$1&page=$2 [QSA,L]