Я действительно борюсь с этим регулярным выражением.
Мы запускаем новую версию нашей функции «группы», но нам необходимо поддерживать все старые группы по одному и тому же URL-адресу. К счастью, у этих двух функций разные шаблоны URL, так что это должно быть легко? Верно?
- Старый: domain.com/group/$groupname
- Новое: domain.com/group/$groupid/$groupname
Текущее регулярное выражение, которое я использовал в регулярном выражении для перенаправления старых групп в старый скрипт, было: RewriteRule ^ (group / ([^ 0-9 / provided.*))$ /old_group.php/$1 [L, QSA ]
Все отлично работало, пока не появилась группа, которая называлась что-то вроде: domain.com/group/2009-neato-group
В этот момент регулярное выражение сопоставило новую группу и заставило ее использовать старый код, потому что он содержал числа. Ой.
Итак, есть ли какие-либо мысли о регулярном выражении, которое соответствовало бы старому шаблону, чтобы я мог его перенаправить?
Шаблоны должны совпадать:
- группа / моя старая группа
- группа / другая-старая-группа /
- группа / 123-другая-старая-группа-456 / модуль-внутри-группы /
Шаблоны, которые не могут совпадать:
- группа / 12 / а-новая-группа
- группа / 345 / другая-новая-группа /
- группа / 6789 / a-3-я группа / модуль-abc /
Лучше всего я подумал о том, что он не может начинаться с «групповой слэш-числа-слэш», но не смог превратить это в регулярное выражение. Так что что-то, что отрицает эту закономерность, вероятно, сработает.
Спасибо