0

私は最後にオプションのパラメータを持つこのURLを持っています:

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]

誰かが私が解決策を見つけるのを手伝ってくれますか..:)

前もって感謝します !


より多くの精度を編集します:

このURLを試してみると:

?_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

それは機能していません...私は別の条件でこの正規表現を試しました

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

なぜ機能しないのかわかりません。誰か助けてもらえますか?ありがとう !

4

1 に答える 1

1

OK私は解決策を見つけました:

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 に答える