Есть три проблемы с вашими правилами.
Прежде всего, порядок правил. Первое правило будет соответствовать любому, заканчивающемуся /index.html
, и оно выполнит перенаправление. Это (правильно) помечено как окончательное правило (флаг L
). Из-за этого второе правило никогда не будет выполнено. Если вы добавите правило br
перед общим правилом, оно будет сначала проверено, и, если оно совпадет, произойдет перенаправление.
Вторая проблема - это регулярное выражение вашего второго правила. Он содержит окружность ^
на полпути от выражения. Обводное слово означает начало строки , которое, очевидно, никогда не встречается в середине строки. Снятие обходного кольца исправит это.
Третья проблема заключается в том, что вы разрешаете символы перед частью /br/
вашего URL (имея в своем выражении (.*)
. Согласно вашему описанию, вам это на самом деле не нужно.
Подведение итогов:
addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/br/(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]