我有一个运行不正常的htaccess规则,看起来它几乎没有假设所有这些,如果我只放一个规则它工作正常,问题是当我插入所有这些时,这里是我上面的代码
# Search Form Url Result
#search by category
RewriteRule ^jobs/([^/\.]+)$ jobs.php?Category=$1
#search by location
RewriteRule ^jobs/([^/\.]+)$ jobs.php?Location=$1
#search by category and location
RewriteRule ^jobs/([^/\.]+)/([^/\.]+)$ jobs.php?Category=$1&Location=$2
基本上每条规则适用于每种情况,例如,如果用户仅搜索类别或位置,甚至搜索类别和位置。
答案 0 :(得分:0)
您Rule1
和Rule2
使用相同的模式,即^jobs/([^/\.]+)$
,因此只有第一种模式可以使用。
您必须在/jobs/
之后添加适当的标识符,以区分类别和位置URI。
您可以考虑:
# Search Form Url Result
#search by category
RewriteRule ^jobs/c/([^/.]+)/?$ jobs.php?Category=$1 [L,QSA]
#search by location
RewriteRule ^jobs/l/([^/.]+)/?$ jobs.php?Location=$1 [L,QSA]
#search by category and location
RewriteRule ^jobs/([^/.]+)/([^/.]+)/?$ jobs.php?Category=$1&Location=$2 [L,QSA]