Эта конструкция кроме главной зацепит и все внутренние страницы.
RedirectMatch 301 ^/$ http://mydomain.ru/page.html
RewriteCond %{SCRIPT_FILENAME}.html -f RewriteRule ^(.*)$ $1.html [L] ErrorDocument 404 /errors/404.html
RewriteEngine On RewriteCond %{REQUEST_URI} =/page1 [OR] RewriteCond %{REQUEST_URI} =/page2 [OR] RewriteCond %{REQUEST_URI} =/page3 [OR] RewriteCond %{REQUEST_URI} =/page4 [OR] RewriteCond %{REQUEST_URI} =/page5 [OR] RewriteCond %{REQUEST_URI} =/page6 [OR] RewriteCond %{REQUEST_URI} =/page7 [OR] RewriteCond %{REQUEST_URI} =/page8 [OR] RewriteCond %{REQUEST_URI} =/page9 [OR] RewriteCond %{REQUEST_URI} =/page10 RewriteRule ^ http://site.biz%{REQUEST_URI} [L,R=301] RewriteRule ^ http://site.biz/? [L,R=301]
Данные правила будут одинаково работать в корне и в папке, так что тут зависит от предпочтений.
Тут может помочь включение буферизации вывода http://php.net/manual/ru/function.ob-start.php
<?php function callback($buffer) { return preg_replace('~<div id="name">.*</div>~Uis', '', $buffer); } ob_start("callback");
Если вставлять это в самом начале index.php, то функция callback получит сгенерированную страницу и может полностью её поменять.
Еще есть вариант подключить файл с этим кодом без редактирования файлов CMS используя директиву auto-prepend-file
old.ru/board/ => new.ru/
old.ru/board/page => new.ru/
Или такой вариант
old.ru/board/page => new.ru/page
Если делать средствами mod_alias, то для первого варианта правило
RedirectMatch 301 ^/board/ http://new.ru/
Для второго
Redirect 301 /board/ http://new.ru/
Другой вариант отдавать код 403 Forbidden
RewriteRule (?<![^/])undefined - [L,F]
Предполагалось что в переменной $fp уже есть искомый текст в <div class="mtext">
$fp = file_get_contents('index.html');
RewriteRule (?<![^/])undefined 404.shtml [L]
Ставить в самом верху сразу после RewriteEngine On
Хотя так получится, что для этих страниц будет код ответа 200. Лучше так
ErrorDocument 404 /404.shtml RewriteRule (?<![^/])undefined - [L,R=404]
if (preg_match('~<div class="mtext">(.*)</div>~siU', $fp, $match)) { $text = substr($match[1], 0, 23); // Если текст в кодировке UTF-8 // $text = mb_substr($match[1], 0, 23, 'UTF-8'); echo trim($text); preg_match('~\s*\K(?:\s*\S+){0,5}~', $match[1], $result); echo "<br>\n", $result[0]; }