【发布时间】:2015-09-28 10:16:48
【问题描述】:
我有一个运行不正常的 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 使用相同的模式,所以只有第一个可以工作。
-
@anubhava 抱歉,我忘了更改它,但即使我将模式更改为例如 Location=$2,问题仍然存在。是的,只有第一个有效。
-
@anubhava 那么我该如何解决这个问题?
-
如何判断
jobs/后面的字符串是类别还是位置?jobs/php是一个位置吗?jobs/chicago是一个类别吗? -
@Cryszon 基本上是名字,我猜基于规则 "jobs.php?Location=" 或 "jobs.php?Category=" 确定它的信息类型,如果我很抱歉不太正确,因为正则表达式不是我的强项。
标签: php regex .htaccess mod-rewrite