2

すべての外部リンクに追加rel="nofollow"する必要があります (自分のサイトまたはそのサブドメインにつながるものではありません)。

これは 2 つの手順で行いました。最初にrel="nofollow"、次の正規表現を使用してすべてのリンク (内部リンクも含む) に追加します。

<a href="http([s]?)://(.*?)"

rel="nofollow"次に、次の正規表現を使用して、内部リンク (自分のサイトとそのサブドメイン) を除外します。

<a href="http([s]?)://(www\.|forum\.|blog\.)mysite.com(.*?)" rel="nofollow"

ワンステップでこれを行うにはどうすればよいですか?出来ますか?

4

1 に答える 1

2

DOM の方法:

$doc = new DOMDocument();
@$doc -> loadHTMLFile($url); // url of the html file
$links = $doc->getElementsByTagName('a');

foreach($links as $link) {
    $href = $link->getAttribute('href');
    if (preg_match('~^https?://(?>[^/m]++|m++(?!ysite.com\b))*~', $href))
        $link->setAttribute('rel', 'nofollow');
}

$doc->saveHTMLFile($url);
于 2013-07-13T12:22:19.667 に答える