我在最后有这个可选参数的网址:
http://domain.local/?_escaped_fragment_=watch/1/10/test/optionalparams/optionalparams/optionalparams/optionalparams..
我希望将其重定向到
http://domain.local/videos/watch/test?id=10
我尝试了很多htaccess重写规则和conds,但它根本不起作用.. 这是我的htaccess:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)/(.*)/(.*)/(.*)(/(.*)?)$
RewriteRule ^(.*) /videos/%1/%4?id=%3 [NC,R=301]
有人可以帮我找到解决方案.. :)
提前致谢!
修改更多精度:
当我尝试这个网址时:
?_escaped_fragment_=watch/1/10/title
使用此重写规则
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)/(.*)/(.*)/(.*)$
RewriteRule ^(.*) /videos/%1/%4?id=%3 [NC,R=301]
它像我想要的那样工作! 但是,如果我尝试使用像这样的/ title之后的任何网址
?_escaped_fragment_=watch/1/10/title/param/param/param
它不起作用...... 我尝试过这个reg ex与另一个cond
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)/(.*)/(.*)/(.*)(/(.*)?)$
RewriteRule ^(.*) /videos/%1/%4?id=%3 [NC,R=301]
我不明白为什么它不起作用..有人能帮帮我吗?谢谢!
答案 0 :(得分:1)
好的,我找到了解决方案:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/([a-zA-Z0-9\-]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9\-]+)
RewriteRule ^(.*) /videos/%1/%4/?id=%3&page=%2 [NC,R=301]