RewriteEngine on
RewriteRule ^zenphoto/pages/([a-z]+)\?locale=(en|de)_[A-Z]{2}$ /zenphoto/$2/pages/$1
RewriteRule ^zenphoto/gallery_([0-9])\?locale=(en|de)_[A-Z]{2}$ /zenphoto/$2/gallery_$1
В первом примере я говорю: «Если URL начинается ( ^ ) с« zenphoto / pages / », то иметь последовательность строчных букв ( + означает« один » или более ", а [az] означает" буква в [a, b, ..., y, z] "), что является моей первой группой (есть скобки -> это группа) Затем следует "? Locale =", затем "en" или ( | означает "или") "de", и это моя вторая группа, затем следует подчеркивание ("_ ") и две заглавные буквы, и после них ничего не стоит ( $ означает, что это конец URL)".
Я пишу пробел и новый URL, который хочу, и использую $ n для использования n -ой группы.
Второй URL-адрес - «красивый», а первый - настоящий.
Вы должны использовать обратную косую черту перед специальными символами, такими как?, +, {,}, (,), [,], *,., | если вы хотите использовать один в своем URL.
Edit:
Если вы хотите избежать бесконечных циклов, вы должны добавить флаг [L] (L = Last) в конце каждой строки.