0

外部 URL または内部 URL を含むテキスト段落があります。ユーザーはこのテキストを入力します。したがって、外部リンクを追加rel=nofollowし、内部リンクには属性を持たないようにしたいと考えていrel=nofollowます。

内部リンクは次のとおりです。

 <a href=http://www.mysite.com"> My Site </a> 

また
<a href="/articles/1-world-cup-cricket-2015"> World cup schedule </a>

外部リンクはいつも通りなんでも...

私の現在の機能はrel=nofollow、すべての内部および外部リンクに追加することです。

def add_nofollow html
  html.gsub(/\<a href=["'](.*?)["']\>(.*?)\<\/a\>/mi, '<a href="\1" rel="nofollow" target="_new" >\2</a>')
end

問題は、外部リンクのみに rel=nofollow を追加するにはどうすればよいですか?

4

2 に答える 2

2

私の例については、このリンクを参照してください。正規表現を使用<a href=["']((http://www.mysite.com)(/.*?){0,1}|/.*?)["']\>(.*?)\<\/a\>して、すべてのリンクを内部リンクと一致させます。

于 2013-08-02T09:02:08.767 に答える
1

Ruby on Rails では、正規表現を使用して URL を検索し、それらに rel=nofollow を追加できます。

def add_nofollow html

 html.scan(/(\<a href=["'].*?["']\>.*?\<\/a\>)/).flatten.each do |link|
   if link.match(/\<a href=["'](http:\/\/|www){0,1}((localhost:3000|mysite.com)(\/.*?){0,1}|\/.*?)["']\>(.*?)\<\/a\>/)
    else
    link.match(/(\<a href=["'](.*?)["']\>(.*?)\<\/a\>)/)
    html.gsub!(link, "<a href='#{$2}' rel='nofollow' target='_new' >#{$3}</a>" )
    end
  end
  html
end

`

乾杯!

于 2013-08-02T12:59:48.030 に答える