#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