我有一个 php 页面,它创建如下 URL:
vendors/London City/cat-DJ & Entertainment/keywords
我的 .htaccess 重定向如下所示
RewriteRule vendors/(.+)/cat-(.+)/(.+)$ vendors.php?location=$1&category=$2&freetext=$3 [L]
RewriteRule vendors/(.+)/cat-(.+)/(.+)/$ vendors.php?location=$1&category=$2&freetext=$3 [L]
问题 1 是:在 vendor.php 文件中,我只得到“DJ ; Entertainment”作为类别。& 符号丢失。
问题 2是:我的完整 .htaccess 文件如下所示......定义了6 条规则。
RewriteRule vendors/(.+)/(.+)/$ vendors.php?location=$1&freetext=$2 [L]
RewriteRule vendors/(.+)/(.+)$ vendors.php?location=$1&freetext=$2 [L]
RewriteRule vendors/(.+)/cat-(.+)/$ vendors.php?location=$1&category=$2 [L]
RewriteRule vendors/(.+)/cat-(.+)$ vendors.php?location=$1&category=$2 [L]
RewriteRule vendors/(.+)/cat-(.+)/(.+)$ vendors.php?location=$1&category=$2&freetext=$3[L]
RewriteRule vendors/(.+)/cat-(.+)/(.+)/$ vendors.php?location=$1&category=$2&freetext=$3[L]
为什么 URL vendor/London City/cat-DJ & Entertainment/keywords与规则 3 或 4 匹配并重定向到 vendor.php?location=$1&category=$2 ?
.htaccess 会从头到尾一一处理规则吗?
我通过将规则 5 和 6 放在其他规则的顶部解决了这个问题。我做了正确的修复吗?