диапазон байтов masm

Есть 2 вещи, которые вы делаете неправильно здесь.

Во-первых, ваше регулярное выражение %{HTTP_HOST} не подходит. Вам нужно избегать точек ., иначе они будут рассматриваться как «любой символ, который не является символом новой строки». Это по существу делает обратную ссылку %3 последним символом имени хоста перед TLD (например, http://blah.bar.loc,% 3 = r).

Во-вторых, вы не можете использовать обратные ссылки в регулярном выражении RewriteCond, только в левой стороне, это своего рода странное ограничение. Однако вы можете использовать ссылки \1 в регулярном выражении, чтобы вы могли построить умную левую боковую строку для сопоставления. Что-то вроде %3::%{REQUEST_URI}, а затем вы можете так: !^(.*?)::/\1/?. Это регулярное выражение, по существу, говорит: «сопоставьте и сгруппируйте первый блок текста перед :: :: затем убедитесь, что блок текста, следующий за :: начинается с /(first block)".

Итак, ваши правила должны выглядеть так:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?([a-zA-Z0-9-]*\.)?([a-zA-Z0-9-]+)\.loc$ [NC]
RewriteCond %3::%{REQUEST_URI} !^(.*?)::/\1/?
RewriteRule (.*) /%3/$1 [L,QSA]
1
задан Dalton Conley 14 September 2010 в 14:48
поделиться