Регулярное выражение для перезаписи мода через HTACCESS

#regex #.htaccess #mod-rewrite #url-rewriting

#регулярное выражение #.htaccess #mod-перезапись #url-перезапись

Вопрос:

Мне нужно регулярное выражение, которое я могу использовать в файле HTACCESS для перезаписи:

http://www.sample.com/dir/1-2-3.php

1 = только строчные буквы, количество не ограничено

2 = буквенно-цифровое обозначение (только строчные буквы) и тире, количество символов не ограничено

3 = буквенно-цифровое обозначение (только прописные буквы), количество символов не ограничено

(ПРИМЕЧАНИЕ: тире между 1, 2, 3 являются преднамеренными и будут присутствовать в URL)

Для

http://www.sample.com/dir/sub/page.php?v=ABC12345

Где ABC12345 — это # 3 от исходного URL.

Ответ №1:

Если я правильно понимаю, должно сработать следующее.

 RewriteEngine On
RewriteRule ^([a-z]*)-([a-z0-9-]*)-([A-Z0-9]*).php /$1/$2.php?v=$3 [L]
  

Надеюсь, это поможет.

Ответ №2:

Попробуйте это правило в вашем .htaccess:

 Options  FollowSymLinks
RewriteEngine on
RewriteRule ^dir/([a-z]*)-([a-z0-9-]*)-([A-Z0-9]*).php$ /dir/sub/page.php?v=$3 [R=301,L,NE,QSA]

R=301 will redirect with https status 301
L will make last rule
NE is for no escaping query string
QSA flag will make sure to append existing query parameter with additional query parameters

$3 is 3rd capture group in your REQUEST_URI