2013-05-07 142 views
0

我已经成功地做我的网址使用清洁参数重定向旧查询网址到新的URL重写的.htaccess

从example.com/index.php?gender=m &高度= 70 &重量= 150

到example.com/m/70/150/

所以如果在干净的URL类型的人,他们会用适当的参数得到的页面。

不过,我想使它所以如果在旧的URL有人类型,将301重定向到新的清洁URL

我已经试过这

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只是看起来像旧的仍然。

编辑:

当前重写,使网址的外观干净

RewriteEngine on 

RewriteRule ^([m]+)en/([0-9-]+)-inches/([0-9-]+)-lbs/?$ index.php?gender=$1&height=$2&weight=$3 [NC,L] 
+0

什么是你的行吟诗人RRULE是什么样子? – 2013-05-07 02:10:20

+0

以及它有点砍死together..but它的功能(见上文编辑为干净的版本) 我有这么 example.com/index.php?gender=m&height=70&weight=150 会变成example.com/men/70-inches/150-lbs/ 'RewriteEngine on' 'RewriteRule ^([m] +)en /([0-9 - ] +) - inches /([0-9 - ] +) -lbs /?$ index.php?gender = $ 1&height = $ 2&weight = $ 3 [NC,L]' – user2180552 2013-05-07 02:17:16

回答

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] 
+0

正是我所需要的。谢谢! – user2180552 2013-05-07 04:06:17

相关问题