htaccess, поиск и замена ключевых слов в браузере - PullRequest
0 голосов
/ 29 декабря 2011

Мне нужно переписать ключевое слово (старое доменное имя) в 100 000 файлов, и я не могу найти и заменить его в базе данных.может быть, есть решение с htaccess?

old: желтая собака всегда щелкает www.domainname1.tld

new: желтая собака всегда щелкает www.domainname2.tld

в PHP:

$bodytag = "the yellow dog clicks always www.domainname1.tld";

$bodytag = str_replace("domainname1.tld", "domainname2.tld", $bodytag);

Ответы [ 3 ]

0 голосов
/ 29 декабря 2011

Я не знаю, как сделать это в htaccess.Существуют модули Apache, которые предназначены для управления контентом.Например, mod_substitute.

http://httpd.apache.org/docs/2.2/mod/mod_substitute.html

<Location />
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s/www.domainname1.tld/www.domainname2.tld/ni
</Location>

кредит: http://corpocrat.com/2008/09/19/install-apache-mod_substitute/

0 голосов
/ 01 мая 2013

У меня был похожий случай, когда мы переместили много файлов в новую структуру папок:

Старая структура:

/css/
/images/
/js
/*.html

Новая структура:

/common/css/
/common/images/
/common/js
/<various_html_folders/*.html

Проблема заключалась в том, что мои html-файлы ссылались на css, js и images по относительным путям, и с новой структурой мне пришлось бы обновлять тысячи этих ссылок.

Поэтому я наткнулся на mod_rewrite в Apache, который переписываетТело ответа до его отправки клиенту.Я добавил следующие 4 строки в мой файл .htaccess, чтобы изменить все href="css/ на href="/common/css/":

AddOutputFilterByType SUBSTITUTE text/html
Substitute 's|href="css/|="/common/css/|i'
Substitute 's|href="js/|="/common/js/|i'
Substitute 's|href="images/|="/common/images/|i'

И вуаля!css, javascripts и изображения работают, как и раньше, без обновления каких-либо моих html-файлов.

Отказ от ответственности: Я еще не исследовал влияние этого на производительность.Помните, что регулярное выражение выполняется во всем теле ответа для каждой добавляемой строки Substitute.

0 голосов
/ 29 декабря 2011

Изменение содержимого файла выходит за рамки .htaccess файла или Apache в целом.

Если ссылка указывает на домен, этот домен будет вызываться. Вы можете добавить перенаправление на этот домен (, вот пример ), но вы не можете предотвратить завершение запроса на старом домене.

...