无法通过.htaccess获取url字符串中的第10个变量


Unable to get 10th variable in url string through .htaccess

我想在php代码中得到getsort_by,但这似乎是在返回数字为0的变量1的值。

RewriteRule ^abc/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ search.php?counrty=abc&state=$1&gender=$2&r_city=$3&r_mstatus=$4&r_religion=$5&r_ethnicity=$6&r_cast=$7&r_profession=$8&r_education=$9&sort_by=$10 [NC]

根据Apache文档,对于$NN的值只能是0-9。因此,尝试获得$10是行不通的。您可能需要经历两个重写步骤。所以,也许你使用这样的东西:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+/[^/]+/[^/]+)/?$ search.php?country=$1&state=$2&gender=$3&r_city=$4&r_mstatus=$5&r_religion=$6&r_ethnicity=$7&r_cast=$8&r_profession=$8&profession_and_education_and_sort=$9 [NC]
RewriteCond %{REQUEST_FILENAME} ^search'.php$
RewriteCond %{QUERY_STRING} ^(country=.*&state=.*&gender=.*&r_city=.*&r_mstatus=.*&r_religion=.*&r_ethnicity=.*&r_cast=.*)&profession_and_education_and_sort=([^/]+)/([^/]+)/([^/]+)
RewriteCond ^search'.php$ search.php?%1&r_profession=%2&r_education=%3&sort_by=%4 [NC,L]