Динамические правила .htaccess

Я обновляю свой сайт дважды с прошлого года, и у меня есть разные названия страниц с первой версии. Возможно ли создать динамические правила в apache?

например:

Я использую эти страницы (пример):

  • /abc123 (версия 1)
  • /abc_123 (версия 2)
  • /abc-123/(версия 3 - текущий)

Я хочу создать правило, которое будет перенаправлять abc123 на abc_123, если оно существует, и abc_123 на abc-123, если оно существует. Благодаря

Ответ 1

Почему не это?

RewriteRule ^([a-z]+)([0-9]+)$ /$1-$2 [NC,L]
RewriteRule ^([a-z]+)_([0-9]+)$ /$1-$2 [NC,L]

EDIT:

или вы можете использовать 1 правило:

RewriteRule ^([a-z]+)(_?)([0-9]+)/?$ /$1-$3 [NC,L]

таким образом легко добавлять символы в (_?) вместо того, чтобы снова и снова создавать одно и то же правило с небольшой дисперсией.

Ответ 2

Я нашел этот пример:

RewriteEngine on
#
# If the requested URL exists as a file with a .php extension
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
# internally rewrite requested .html URL to .php file
RewriteRule ^(([^/]+/)*[^.]+)\.html$ /$1.php [NC,L]

Вы хотите прочитать о различных параметрах и отредактировать его, чтобы он работал для вашей ситуации.