Плагин перенаправления регулярных выражений Wordpress

Я использую плагин перенаправления для Wordpress, но не могу заставить это регулярное выражение работать. Я вообще не эксперт по регулярным выражениям, поэтому я думаю, что делаю что-то не так.

/(.*)/(.*)/?rel=old
/$1/$2/?rel=new

При этом я получаю: http://domain.se/something/somestuff/?/?rel=new

Это должно быть: http://domain.se/something/somestuff/?rel=new

Почему не работает и что это за лишнее /?/


person Jinxe    schedule 16.11.2013    source источник
comment
Какую строку вы пытаетесь сопоставить?   -  person Amal Murali    schedule 16.11.2013
comment
?rel=old превращается в ?rel=new. Остальная часть URL-адреса должна оставаться такой же, как и раньше.   -  person Jinxe    schedule 16.11.2013


Ответы (1)


Похоже, вы забыли экранировать ?.

/(.*)/(.*)/\?rel=old
/$1/$2/?rel=new

В регулярном выражении ? означает соответствовать предыдущему символу/группе ноль или один раз, поэтому исходное регулярное выражение искало необязательный символ / непосредственно перед rel=old. Конечно, он этого не нашел, и вместо этого текст, соответствующий второй группе захвата, расширился, чтобы охватить /? символов до rel=old.

person pobrelkey    schedule 16.11.2013
comment
Большое спасибо за быстрый ответ, решил проблему и спас день! - person Jinxe; 16.11.2013
comment
Спасибо. Обязательно примите ответ, если вы удовлетворены (похоже, вы не сделали этого ни на одном из своих предыдущих вопросов). ). Принятие ответа приносит вам очки репутации, знаете ли... - person pobrelkey; 16.11.2013
comment
Я пытался принять это, когда писал свой комментарий, но он сказал, что это пост. Это сделано сейчас! - person Jinxe; 16.11.2013