我已成功使用参数
清理我的网址来自example.com/index.php?gender=m&height=70&weight=150
进入example.com/m/70/150 /
因此,如果有人输入该干净的网址,他们就会获得包含正确参数的网页。
但是,我想这样做,如果有人输入旧网址,它会重定向到新的干净网址
我试过这个
RewriteCond %{QUERY_STRING} ^gender=([a-z]+)&height=([0-9-]+)&weight=([0-9-]+)$
RewriteRule ^index\.php$ http://www.example.com/%1/%2/%3? [R=301,L]
但它不起作用,没有错误,没有重写...... URL看起来就像旧的一样。
编辑:
当前重写以使URL看起来干净
RewriteEngine on
RewriteRule ^([m]+)en/([0-9-]+)-inches/([0-9-]+)-lbs/?$ index.php?gender=$1&height=$2&weight=$3 [NC,L]
答案 0 :(得分:0)
您应该检查实际请求而不是URI / query-string,因为这两个规则都会被其他规则修改。重定向中还缺少一些内容,en
,-inches
和-lbs
部分是看起来更干净的URI。
尝试:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?gender=([a-z]+)&height=([0-9-]+)&weight=([0-9-]+)
RewriteRule ^index\.php$ /%1en/%2-inches/%3-lbs/? [L,R=301]