Go Back   vb.org Archive > vBulletin Modifications > vBulletin 3.8 Modifications > vBulletin 3.8 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Two-Step External Links for Link Weight Retention Details »»
Two-Step External Links for Link Weight Retention
Version: 1.05, by aspen0 aspen0 is offline
Developer Last Online: Jun 2015 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 3.8.x Rating:
Released: 07-01-2009 Last Update: 01-25-2011 Installs: 52
Uses Plugins
Code Changes Additional Files Translations  
No support by the author.

Two-Step External Links
Thought up by Chris Beasley, coded by Chris Bowyer, copyright Jalic Inc. 2009.

Compatibility
Tested on 3.7.x and 3.8.x, may work on older versions as well.

Description
With Google's recent change to nofollow calculations using nofollow on your user submitted external links will still harm your site by depriving your internal links of PageRank. (See here.)

Forums that had installed nofollow on signature or other such user contributed links thinking they were controlling this are in fact no longer doing so.

One solution is a two-step linking process presenting a disclaimer on a redirect page (filled
with your internal links) to mitigate link weight loss. For a full explanation of benefits and the math behind them see the official page (a wordpress plugin is also available there).

Two-Step External Linking

This method is also useful for sites needing a disclaimer before sending people to third party user contributed websites for legal or liability reasons.

Using this plugin can reduce the amount of pagerank sent through user contributed signature and other links by over 90%, for every post or thread on your forum. It also allows you to keep using nofollow to indicate to search engines that if the link is to a bad neighborhood you are not at fault, while not wasting link weight on the nofollow link.

Settings
The settings are located in vBulletin Options -> vBulletin Options -> All the way at the bottom. You can do the following:

1. Create a white list of domains or urls exempt from redirecting.
2. Decide to apply "nofollow" to the external link that shows on the redirect page or not.
3. Turn on two-step linking for signature links.
4. Turn on two-step linking for post/profile visitor message/blog links.
5. Turn on two-step linking for user profile/memberlist links.
6. Define your redirect warning disclaimer paragraph.
7. Decide to use an additional automated meta-redirect or not, and the second delay.


Statistics

New Files: 1
File Edits: 2
Products to Install: 1
Readme included

Additional Uses
Because the actual redirect page is fairly independent of vbulletin and easy to access, you can run any other external links from any software on your site through it simply with the format of example.com/forums/externalredirect.php?url=http://www.externalexample.com. So if you're able to edit your CMS or otherwise manually format your links as such, they will be run through the redirect as well.

Support

I'll do my best to provide support in this thread only for people who have it installed.

Version History

1.00 - Initial Release
1.01 - bug fixes
1.02 - bug fixes, added admin toggle to allow you to choose to only show redirects to guests.
1.03 - bug fixes
1.04 - bug fixes, non-www urls & sigpic problems fixed.
1.05 - Jan 25th 2011, small xss flaw fixed

Download Now

File Type: zip two-step-external-link.zip (4.7 KB, 242 views)

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #112  
Old 07-24-2009, 12:05 AM
aspen0 aspen0 is offline
 
Join Date: Apr 2003
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Updated, the only new file is the externalredirect.php, you can just upload the new one.

The update is that we've seriously relaxed the URL verification. It was decided there really wasn't a need for security to make sure the url variable was actually a URL and people kept posting weird URLs that would break it, so its gone.

This is different from the one Chris just attached above.
Reply With Quote
  #113  
Old 07-29-2009, 03:12 PM
whizbox whizbox is offline
 
Join Date: Mar 2008
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Please help - I get a 500 Internal Server Error when any link is clicked. externalredirect.php works as a page but the error comes if the outgoing url is included as ?=...

I also have the issue with images in signatures?. Was this ever resolved?
Reply With Quote
  #114  
Old 07-31-2009, 10:00 PM
TWTCommish's Avatar
TWTCommish TWTCommish is offline
 
Join Date: Oct 2001
Location: Pittsburgh, PA, USA
Posts: 783
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes, just recently. If you're using both an embedded external image AND an uploaded signature image in signatures, find the "Remove external link on postbit signature" plugin and change its location from "postbit_display_start" to "postbit_display_complete" and populate it with the following code:

Code:
global $vbulletin;
if (!$vbulletin->options['external_verify_sigs']) {
  $this->post[signature] = str_replace($vbulletin->options['bburl'].'/externalredirect.php?url=', '', $this->post[signature]);
}
You might have to empty your signature cache under Maintenance -> Update Counters, as well. Let me know if this works for you.

Regarding the 500 error; I'm afraid I don't quite understand that last part. Could you rephrase?
Reply With Quote
  #115  
Old 08-01-2009, 08:15 AM
Stefanus Stefanus is offline
 
Join Date: Aug 2007
Location: RSA - Boerland
Posts: 99
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TWTCommish View Post
Subdomains/non-www domains work fine; it's the commas that's causing the problem. I've modified the externalredirect.php file to allow for those, as well. Just uploaded the attached version over your existing one.
Thanks
Reply With Quote
  #116  
Old 08-08-2009, 06:59 PM
Charles_1 Charles_1 is offline
 
Join Date: Jun 2006
Location: Czech Republic, Brno
Posts: 75
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just installed this and it works only for new posts for me :-(.

When I perform Rebuild Post Cache in Maintenance -> Update Counters, all external links change to normal - without externalredirect.php in address (even those which I just created and worked until rebuild of post cache).

When I have post with external link (without externalredirect.php in address) and I resave this post (only hit edit and just after it save), redirect appears.

Any ideas why process of rebuilding post cache is removing redirects on external links?

I also tried disable all hacks and install this on two separate forums - still the same result.

vBulletin 3.8.3
Reply With Quote
  #117  
Old 08-09-2009, 07:34 PM
aspen0 aspen0 is offline
 
Join Date: Apr 2003
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It could be the postcache process doesn't call the same hooks as the normal posting process, I don't know though.

I know I noticed some inconsistencies as well, but they only lasted a few minutes. We'll see if the other Chris has any ideas.
Reply With Quote
  #118  
Old 08-09-2009, 10:04 PM
LifesGreatestGift's Avatar
LifesGreatestGift LifesGreatestGift is offline
 
Join Date: Jul 2009
Location: Louisville, KY USA
Posts: 885
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Found a bug in 1.0.4



If you have RSS enabled on your site, it uses the external.php file and when a member visits an external link, they are directed to the WARNING page.

But it looks like that when Im looking at who's online.

The mod works fine, but just thought Id point out this little "incompatibility".

Maybe its just me :-P

The highlighted part of the link has nothing to do with the external page, its a link thats meant for my site.
Reply With Quote
  #119  
Old 08-13-2009, 12:19 AM
TWTCommish's Avatar
TWTCommish TWTCommish is offline
 
Join Date: Oct 2001
Location: Pittsburgh, PA, USA
Posts: 783
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Charles_1 View Post
I just installed this and it works only for new posts for me :-(.

When I perform Rebuild Post Cache in Maintenance -> Update Counters, all external links change to normal - without externalredirect.php in address (even those which I just created and worked until rebuild of post cache).

When I have post with external link (without externalredirect.php in address) and I resave this post (only hit edit and just after it save), redirect appears.

Any ideas why process of rebuilding post cache is removing redirects on external links?

I also tried disable all hacks and install this on two separate forums - still the same result.

vBulletin 3.8.3
The post cache should use the standard bb code parsing functions. Are you sure the settings are all set to "Yes" before the rebuilding?
Reply With Quote
  #120  
Old 08-15-2009, 06:37 AM
squishi squishi is offline
 
Join Date: May 2006
Location: Frankfurt
Posts: 282
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There's an automatic redirect on the external link page.
You think google does not detect this?
Reply With Quote
  #121  
Old 08-16-2009, 02:49 PM
sdavis2702 sdavis2702 is offline
 
Join Date: Apr 2008
Posts: 116
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is great and I caught it at the perfect time. My most recent forum is brand new. It looks like this awesome hack doesn't go back and handle old post links. However, my site only had like 10 links so far.

Thank you for this. The only other option besides having horrible page rank was to disable live links... and that's a no-no!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:23 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.19414 seconds
  • Memory Usage 2,343KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete