Webサイトのコンテンツがデータベースに保存されているか、テキストファイルに存在すると仮定すると、URL形式は次のとおりです。
http://old-domain.com/path/to/page
https://old-domain.com/another/page
https://m66.netなどの新しいドメイン名に置き換える必要がある場合は、次のことができます。
古いドメインURLに一致する正規表現を定義します。
MB_EREGI_REPLACEを使用して、新しいドメイン名URLに置き換えます。
交換されたコンテンツを保存します。
<?php
// 古いドメイン名(例)
$oldDomain = 'old-domain.com';
// 新しいドメイン名
$newDomain = 'm66.net';
// 保留中のコンテンツ,複数を含むと仮定します URL
$content = <<<EOD
当社のウェブサイトへようこそ:http://old-domain.com/home
詳細については、ご覧ください:https://old-domain.com/about-us
連絡先:http://old-domain.com/contact
EOD;
// 正規表現を定義します,マッチ http または https 始まり,后面跟古いドメイン名,症例は無感覚です
$pattern = 'https?://'.$oldDomain;
// 使用 mb_eregi_replace 替换成新しいドメイン名
// 置き換えます https://m66.net + オリジナルパス
$replacedContent = mb_eregi_replace(
$pattern,
'https://'.$newDomain,
$content
);
// 交換されたコンテンツを出力します
echo $replacedContent;
?>
実行結果:
当社のウェブサイトへようこそ:https://m66.net/home
詳細については、ご覧ください:https://m66.net/about-us
連絡先:https://m66.net/contact
上記のコードでは、 MB_EREGI_REPLACEはドメイン名パーツのみを置き換え、URLの後にパスを変更します。これは、通常の一致がHTTP(s):http(s):http(s):old-domain.comであるためです。この部分のみが交換するときに交換され、後続のパスには影響しません。
より複雑なURLを一致させたい場合は、より完全な正規表現を書くこともできます。
$pattern = '(https?://)'.$oldDomain;
このようにして、 MB_EREGI_REPLACEはまだ正確に一致して置き換えることができます。
MB_EREGI_REPLACEは、中国語または他のマルチバイト文字を使用したテキストを処理するのに理想的なマルチバイトエンコードのケースインスセンシティブな交換をサポートしています。
正しい正規表現を構築することにより、ウェブサイトのコンテンツでのURLのバッチ置換を簡単に実現できます。
交換するときは、リンク関数が正常であることを確認するために、URLパスとパラメーターを変更せずに保持するように注意してください。
この方法を使用して、ウェブサイトのドメイン名を変更するときにサイトURLの交換作業全体を迅速かつ効率的に完了し、手動変更の非効率性とリスクを回避できます。
関連タグ:
URL