我有一个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
基本上每个规则适用于每种情况,例如,如果用户只搜索类别或位置,或者甚至搜索类别和位置。
你的Rule1
和Rule2
使用相同的模式,即^jobs/([^/'.]+)$
,所以只有1将工作。
您必须在/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]