0

我已经使用参数成功地清理了我的网址

来自 example.com/index.php?gender=m&height=70&weight=150

进入 example.com/m/70/150/

因此,如果有人输入该干净的 URL,他们将获得具有正确参数的页面。

但是,我想这样做,如果有人输入旧网址,它将 301 重定向到新的干净网址

我试过这个

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] 
4

1 回答 1

0

您可能应该检查实际请求而不是 URI/查询字符串,因为这两个都被其他规则修改。在重定向中,您还缺少一些东西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]
于 2013-05-07T02:52:50.440 回答