0

我有这个带有可选参数的网址:

http://domain.local/?_escaped_fragment_=watch/1/10/test/optionalparams/optionalparams/optionalparams/optionalparams..

我想将它重定向到

http://domain.local/videos/watch/test?id=10

我尝试了很多 htaccess 重写规则和条件,但它根本不起作用.. 这是我的 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 之后尝试这样的 url

?_escaped_fragment_=watch/1/10/title/param/param/param

它不起作用......我已经尝试过使用不同的条件来使用这个 reg ex

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)/(.*)/(.*)/(.*)(/(.*)?)$
RewriteRule ^(.*) /videos/%1/%4?id=%3 [NC,R=301]

我不明白为什么它不起作用..有人可以帮助我吗?谢谢 !

4

1 回答 1

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]
于 2013-01-08T10:15:38.773 回答