[L]./fignya/chtotam это существующий файл? Или он снова будет обработан index.php?$_SERVER['REQUEST_URI']. Там останется исходный адрес /chtotam/. /RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteRule ^prop/name/$ /prop/1234-nazvanie/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.ru$ [NC]
RewriteRule ^prop/other-name/$ /prop/1234-drugoie-nazvanie/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.es$ [NC]
RewriteRule ^prop/name/$ /prop/1234-nombre/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?site\.es$ [NC]
RewriteRule ^prop/other-name/$ /prop/1234-otro-nombre/ [R=301,L] [R=301,L,NE] [A-z] нужно учитывать, что в этот интервал попадают не только буквы, но и другие символы.Z идут символы [ \ ] ^ _ ` и только потом a.\A - всегда совпадает только с началом текста в отличие от метасимвола ^, на который влияет модификатор m.\G - совпадает с позицией, в которой завершилось предыдущее совпадение. При первой итерации \G совпадает только в начале строки, как и метасимвол \A.\G(?!\A) как раз исключает совпадение в начале строки и совпасть может только после предыдущего успешного совпадения.<p> и далее с помощью \G(?!\A) собираем всё что нужно.(?:[^\r\n<]+|<(?!/p>))* - захватывает текст пока не встретит перевод строки или </p>\K - сброс начала совпадения. В документации про это написано в самом конце. \G есть в книге "Регулярные выражения" автор Джеффри Фридл. s метасимвол "точка" соответствует всем символам, включая перевод строк.$html = "<p> ... \n ... \r\n\r\n ... </p>";
$text = "lol";
echo preg_replace_callback(
'|<p>.*?</p>|si',
function ($m) use($text){
return preg_replace('|[\r\n]+|', $text, $m[0]);
},
$html
);preg_replace(
'~(?:\G(?!\A)|<p>)(?:[^\r\n<]+|<(?!/p>))*\K[\r\n]+~i',
$text,
$html
); - и без https://regex101.com/r/QIp4uG/1
locationиrewriteдля сопоставления используют URI запроса в нормализованном виде, т.е. уже после декодирования текста, заданного в виде %XX.%20будет преобразован в пробел и шаблон[%\w]совпадений не найдёт.