将旧查询URL重定向到新重写的URL .htaccess

时间:2013-05-07 01:41:16

标签: .htaccess url rewrite

我已成功使用参数

清理我的网址

来自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] 

1 个答案:

答案 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]