Cómo agregar y ref = 123 cada enlace

¿Cómo podría poner el seguimiento al final de cada enlace de mi website sin editar cada enlace?

por ejemplo, www.WebsiteName.com/?ref=123

así que si www.WebsiteName.com/aboutus.php a www.WebsiteName.com/aboutus.php quiero que agregue ?ref=123 al final de la url.

 var has_querystring = /\?/; $("a[href]"). each(function(el) { if ( el.href && has_querystring.test(el.href) ) { el.href += "&ref=123"; } else { el.href += "?ref=123"; } }); 

Depende de lo que quieras decir sin editar cada enlace .

Si quiere decir que simplemente no desea agregarlo manualmente a su fuente, puede hacer esto:

 $('a[href]').attr('href', function(i, hrf) { return hrf + '?ref=123';}); 

O si quería decir que no quería tener que hacer eso, podría adjuntar un controller .click() que agregará el valor cuando se click el enlace.

 $('a[href]').click(function( e ) { e.preventDefault(); window.location = this.href + '?ref=123'; }); 

Yo usaría una RewriteRule . Es la forma más fácil y confiable en mi opinión. Es decir, no analiza la página con PHP o combate los problemas de carga DOM con JavaScript

Aquí hay un ejemplo:

 # For blank query only RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*)\.php$ /$1.php?ref=123 [L] # Append to existing query RewriteCond %{REQUEST_URI} \.php$ RewriteRule ^(.*)$ /$1&ref=123 [QSA,L] 
 $('a[href]').attr("href", function(){ this.href + '?ref=123'; }); 

Sería un método muy simple. Probablemente tengas que agregar alguna comprobación de errores para asegurarte de que no estás arruinando ningún otro parámetro, etc.