Все до тупости просто это не урл
GET - не является частью урла
Соответственно вы и не можите сделать простой редирект.
Так бы оно выглядело ровно по тз
http://www.domain.ru/works/4/?photos=3409
RewriteCond %{QUERY_STRING} (^|&)photos\=3409%2F%2F%2F%2F%2F%2F%2F%2F%2F%25($|&)
RewriteRule ^works/4/$ /works/4/\?photos=3409 [L,R=301]
Но насколько я понимаю вам нужно отрезать не просто текущий урл а все слеши, хотя непонятно что они вообще там делают.
RewriteCond %{QUERY_STRING} (^|&)photos\=([0-9]{1,}).*($|&)
RewriteRule ^works/4/$ /works/4/\?photos=%2 [L,R=301]
И так по порядку
(^|&)...($|&)
- просто гет запрос он может бытьне первым а вторым следовательно можен или начинаться или заканчиваться с
?
или
&
так что можно обойтись и без этого.
photos\=
Равно экранируем
[0-9]{1,}
- от нуля до 9, повторить один раз и более
(..)
скобки групируют если группы из RewriteRule - ' это $1$2 и тд по номеру группы
То они же из cond будут %1%2 соответственно ты видешь что photos=
%2
- это то что будет в конде во второй скобке.