<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Application Developer &#187; Tweaks</title>
	<atom:link href="http://applicationdeveloper.net/category/tweaks/feed/" rel="self" type="application/rss+xml" />
	<link>http://applicationdeveloper.net</link>
	<description>Making money online</description>
	<lastBuildDate>Sat, 26 Sep 2009 20:31:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Calling #PHP on #JSP / #Java Pages with Javascript &#8211; #js</title>
		<link></link>
		<comments>http://applicationdeveloper.net/2009/07/18/calling-php-jsp-java-pages-javascript-js/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 16:34:38 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[JAVA/JSP]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tweaks]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://applicationdeveloper.net/?p=74</guid>
		<description><![CDATA[Working with hacked together management systems that utilize both Java/JSP and PHP can be extremely annoying. However, jQuery has made our lives a lot easier by letting us call PHP using Javascript.Most of us are script kiddies. Admit it, we like to build our own tools but whenever a shortcut comes into play, we take [...]]]></description>
			<content:encoded><![CDATA[Working with hacked together management systems that utilize both Java/JSP and PHP can be extremely annoying. However, jQuery has made our lives a lot easier by letting us call PHP using Javascript.<br /><br /><img class="alignnone size-full wp-image-76" style="float:right;" title="java" src="http://applicationdeveloper.net/wp-content/uploads/2009/07/java.jpg" alt="java" width="90" height="119" />Most of us are script kiddies. Admit it, we like to build our own tools but whenever a shortcut comes into play, we take the high road. Can you really blame developers for choosing this route when time seems to always be a factor on the Internet. The issue is this leaves us with VERY hacky systems. We piece together and integrate but there are just things we can&#8217;t control. Particularly if we ever end up with anything that&#8217;s not open source.<br /><br />Here&#8217;s a trick for pulling PHP into a JSP run page, or really any page for that matter, as long as it supposed Javascript. Generally speaking, all things support Javascript.<br /><br /><pre class="devcodeblock" title="Javascript"><table class="devcodetools"><tbody><tr><td>&nbsp;Javascript&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard2" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">&lt;script src=&quot;jquery.js&quot;&gt;&lt;/script&gt; </pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline">  $.get(&quot;/location/to/file.php&quot;, function(data) {</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">6</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">   $(&quot;#posthere&quot;).html(data);</pre></td></tr><tr><td class="devcodelines" width="1%">7</td><td class="devcodelinesarea"><pre class="devcode devcodeline">  });</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">8</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">// ]]&gt;&lt;/script&gt;</pre></td></tr><tr><td class="devcodelines" width="1%">9</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br /><br /><a href="http://jquery.com/" target="_blank"><img class="alignnone size-full wp-image-75" style="float:right;" title="jQuery" src="http://applicationdeveloper.net/wp-content/uploads/2009/07/jQuery.jpg" alt="jQuery" width="232" height="67" /></a>Here's how this works. jQuery we should all know. If you don't, go do some reading. It's a big deal.<br /><br />$.get is from jQuery and it will pull the information over and display it.<br /><br />#posthere is key. The<div id="posthere">is where what you want to load will show up. <br /><br />Pretty much from this point you're set. All you need to do is build the PHP file and everything will load up on the JSP pages. Remember, this can applied to any page that supports jQuery or Javascript.</div>]]></content:encoded>
			<wfw:commentRss>http://applicationdeveloper.net/2009/07/18/calling-php-jsp-java-pages-javascript-js/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BackType Tweetcount 1.2 with su.pr Short URL Support</title>
		<link></link>
		<comments>http://applicationdeveloper.net/2009/07/14/backtype-tweetcount-12-supr-short-url-support/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 12:34:08 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tweaks]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[backtype]]></category>
		<category><![CDATA[social marketing]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://applicationdeveloper.net/?p=52</guid>
		<description><![CDATA[The new BackType Tweetcount just launched last night. With a little work, it&#8217;ll support your very own custom shortened URL in the re-tweet. We like su.pr. Thanks to a bit of help from Michael of BackType, we&#8217;re able to figure out this mod overnight.The previous version of BackType worked well but it always re-tweet your [...]]]></description>
			<content:encoded><![CDATA[The new <a href="http://wordpress.org/extend/plugins/backtype-tweetcount/" target="_blank">BackType Tweetcount</a> just launched last night. With a little work, it&#8217;ll support your very own custom shortened URL in the re-tweet. We like <a href="http://su.pr" target="_blank">su.pr</a>. Thanks to a bit of help from <a href="http://twitter.com/michaelmontano">Michael of BackType</a>, we&#8217;re able to figure out this mod overnight.<br /><br />The previous version of BackType worked well but it always re-tweet your posts through <a href="http://awe.sm" target="_blank">awe.sm</a>. That&#8217;s great and all, but what about the rest of us who have our own click tracking or even our own custom shorteners.<a href="http://backtype.com"><img src="http://applicationdeveloper.net/wp-content/uploads/2009/07/backtype.jpg" alt="backtype" title="backtype" width="122" height="39" class="alignnone size-full wp-image-53" style="float:right;" /></a><br /><br />So to make it better, last night we added a new option for developers to add a function into the code that will allow them to build their own custom functions and generate their own custom links. It&#8217;s really just a meta tag, &#8220;<em>bttc_short_url</em>&#8221; that gets generated the first time the post is viewed. Here&#8217;s the best part. Since the short url is generated the FIRST time everything is viewed. Just by browsing your pages, and olf non-syndicated links are automatically added into su.pr. If you use another shortening service, it&#8217;ll do the same for that too.<br /><br />After grabbing the latest BackType Tweetcount, load up your favorite editing tool and add this function to the very bottom of the code:<br /><br /><pre class="devcodeblock" title="PHP"><table class="devcodetools"><tbody><tr><td>&nbsp;PHP&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard7" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=7&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">01</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">02</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">function bttc_supr($url) {</pre></td></tr><tr><td class="devcodelines" width="1%">03</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	$SU_username = &quot;username&quot;;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">04</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	$SU_api = &quot;api_key&quot;;</pre></td></tr><tr><td class="devcodelines" width="1%">05</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	$SU_url = &quot;http://su.pr/api&quot;;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">06</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	$SU_vars = &quot;?url=$url&amp;login=$SU_username&amp;apiKey=$SU_api&quot;;</pre></td></tr><tr><td class="devcodelines" width="1%">07</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">08</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	$curl_handle = curl_init();</pre></td></tr><tr><td class="devcodelines" width="1%">09</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	curl_setopt($curl_handle, CURLOPT_URL, $SU_url . $SU_vars);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">10</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);</pre></td></tr><tr><td class="devcodelines" width="1%">11</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">12</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	curl_setopt($curl_handle, CURLOPT_HTTPGET, 1); </pre></td></tr><tr><td class="devcodelines" width="1%">13</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	$buffer = curl_exec($curl_handle);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">14</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	curl_close($curl_handle);</pre></td></tr><tr><td class="devcodelines" width="1%">15</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	//$SU_newURL = str_replace(&quot;su.pr/&quot;, &quot;&quot;, $buffer);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">16</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	$SU_newURL = $buffer;</pre></td></tr><tr><td class="devcodelines" width="1%">17</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">18</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	return $SU_newURL;</pre></td></tr><tr><td class="devcodelines" width="1%">19</td><td class="devcodelinesarea"><pre class="devcode devcodeline">}</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">20</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />As a quick note there. The commented out <em>//$SU_newurl</em> is for those that host their own url shortcodes on their domain using the su.pr htaccess modification.<br /><br />Go to Line 180, insert this code:<br /><br /><pre class="devcodeblock" title="PHP"><table class="devcodetools"><tbody><tr><td>&nbsp;PHP&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard8" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=8&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">if (get_post_meta($post-&gt;ID, 'bttc_short_url', true) != '') {</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">    $button .= 'tweetcount_short_url=\'' . wp_specialchars(get_post_meta($post-&gt;ID, 'bttc_short_url', true), '1') . '\';';</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">}</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />Then go to Line 161, search for this code:<br /><br /><pre class="devcodeblock" title="PHP"><table class="devcodetools"><tbody><tr><td>&nbsp;PHP&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard9" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=9&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">if ($meta == '') {</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	add_post_meta($post-&gt;ID, 'bttc_cache', time() . ':' . $cnt);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">} else {</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	update_post_meta($post-&gt;ID, 'bttc_cache', time() . ':' . $cnt);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">6</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">}</pre></td></tr><tr><td class="devcodelines" width="1%">7</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />Directly below the code, paste the following:<br /><br /><pre class="devcodeblock" title="PHP"><table class="devcodetools"><tbody><tr><td>&nbsp;PHP&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard10" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=10&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">if (get_post_meta($post-&gt;ID, 'bttc_short_url', true) == '') {</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">	$short_url = bttc_supr($url);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	if ($short_url) {</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline">		add_post_meta($post-&gt;ID, 'bttc_short_url', $short_url);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">6</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">	}</pre></td></tr><tr><td class="devcodelines" width="1%">7</td><td class="devcodelinesarea"><pre class="devcode devcodeline">}</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">8</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />And that's it. Edit the first bttc_supr function into basically whatever you want, and the short URL will automatically generated the first time the posts are viewed. It'll let you re-tweet with your own custom links, and even add old content that you haven't added to your shortening admin pages for you. This is a pretty raw version of doing this. BackType will be launching an updated version soon with these modifications to make it easier for users that don't want to edit as much code.]]></content:encoded>
			<wfw:commentRss>http://applicationdeveloper.net/2009/07/14/backtype-tweetcount-12-supr-short-url-support/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SEO Friendly Links and .htaccess Hacks</title>
		<link></link>
		<comments>http://applicationdeveloper.net/2009/07/13/seo-friendly-links-htaccess-tricks/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 23:17:36 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tweaks]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://applicationdeveloper.net/?p=39</guid>
		<description><![CDATA[I&#8217;m going to assume most people know how to activate or edit their own .htaccess files. If you&#8217;re not sure how to edit them then visit this link.htaccess modifications can come in really handy when cleaning up some of the old management systems. For those that use Google Webmaster Tools, this can be a great [...]]]></description>
			<content:encoded><![CDATA[I&#8217;m going to assume most people know how to activate or edit their own .htaccess files. If you&#8217;re not sure how to edit them then visit <a href="http://en.wikipedia.org/wiki/Htaccess">this link</a>.<br /><br />htaccess modifications can come in really handy when cleaning up some of the old management systems. For those that use <a href="http://www.google.com/webmasters/" target="_blank">Google Webmaster Tools</a>, this can be a great way to clean up those nasty 404s. Also note the <a href="http://www.bing.com/webmaster" target="_blank">Bing Webmaster Area</a>. Many developers don&#8217;t build for SEO purposes and let other guys deal with it later. Sometimes they will even request a fee. Here&#8217;s a few tricks to save a couple bucks or clean up some links.<br /><br /><strong>1. Removing variables from your links</strong><br /><br />Ever wonder how sites that have nice friendly links to customer profiles do it? There are a number of methods but if you use php variables that come out like this:<br /><br />http://www.mywebsite.com/index.php?profile=customer_name<br /><br />Apply this short mod to your .htaccess file:<br /><br /><pre class="devcodeblock" title="HTML"><table class="devcodetools"><tbody><tr><td>&nbsp;HTML&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard16" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=16&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">RewriteRule ^profile\/(.*)$ index.php?profile=1 [L,QSA]</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />The result:<br /><br />http://mywebsite.com/profile/customer_name<p style="text-align: center;"><img class="size-full wp-image-44 aligncenter" title="SEO-Friendly-Images-Titles" src="http://applicationdeveloper.net/wp-content/uploads/2009/07/SEO-Friendly-Images-Titles.jpg" alt="SEO-Friendly-Images-Titles" width="383" height="272" /></p>
<br />Nice friendly links that everyone understands. Even the users.<br /><br /><br /><br /><strong>2. SEO Friendly 301 Redirects</strong><br /><br />This is probably the simplest and most useful htaccess. As developers, we change our minds all the time. If those changes ever include changing post names, moving folders, or just altering a link. Google Webmaster Tools is going to come knocking with a 404 error within the next couple days. Fix it with this:<br /><br /><pre class="devcodeblock" title="HTML"><table class="devcodetools"><tbody><tr><td>&nbsp;HTML&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard17" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=17&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">Redirect 301 /path/to/old/location /new/location</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br /><em>/new/location</em> can also be a link like <em>http://new_website.com</em><br /><br /><em><br /></em><br /><br /><strong>3. Custom Error Pages</strong><br /><br />These just help you make a nice polished site. Particularly the 404 error page.<br /><br /><pre class="devcodeblock" title="HTML"><table class="devcodetools"><tbody><tr><td>&nbsp;HTML&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard18" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=18&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">ErrorDocument 401 /error/401.php</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">ErrorDocument 403 /error/403.php</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">ErrorDocument 404 /error/404.php</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline">ErrorDocument 500 /error/500.php</pre></td></tr></table></div></pre>
<br /><br /><br /><strong>4. Block IPs Using htaccess</strong><br /><br />Handy when you just don't like someone, or a country, or you just hate that IP block<br /><br /><pre class="devcodeblock" title="HTML"><table class="devcodetools"><tbody><tr><td>&nbsp;HTML&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard19" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=19&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">allow from all</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline">deny from 145.186.14.122</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">deny from 124.15</pre></td></tr></table></div></pre>
<br /><br /><br /><strong>5. Prevent Hotlinking</strong><br /><br />I get a lot requests for this one.<br /><br /><pre class="devcodeblock" title="HTML"><table class="devcodetools"><tbody><tr><td>&nbsp;HTML&nbsp;|&nbsp;</td><td style="background-image:url('http://applicationdeveloper.net/wp-content/plugins/devformatter/img/devformatter-copy.png');background-repeat:no-repeat;background-position:50% 50%;width:16px;height:16px;"/><embed id="ZeroClipboard20" src="http://applicationdeveloper.net/wp-content/plugins/devformatter/_zclipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16px" height="16px" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=20&width=16&height=16" wmode="transparent" /></td><td>&nbsp;copy&nbsp;code&nbsp;|</td><td style="cursor:pointer" title="DevFormatter Plugin" onclick="devfmt_credits()">?</td><td width="99%">&nbsp;</td></tr></tbody></table><div class="devcodeoverflow"><table class="devcodearea" width="100%"><tr><td class="devcodelines" width="1%">1</td><td class="devcodelinesarea"><pre class="devcode devcodeline"></pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">2</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">Options +FollowSymlinks</pre></td></tr><tr><td class="devcodelines" width="1%">3</td><td class="devcodelinesarea"><pre class="devcode devcodeline"># Protect Hotlinking</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">4</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">RewriteEngine On</pre></td></tr><tr><td class="devcodelines" width="1%">5</td><td class="devcodelinesarea"><pre class="devcode devcodeline">RewriteCond %{HTTP_REFERER} !^$</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">6</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]</pre></td></tr><tr><td class="devcodelines" width="1%">7</td><td class="devcodelinesarea"><pre class="devcode devcodeline">RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc]</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">8</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>
<br />For more dry information on .htaccess. Here's a great blog on it:<br /><br /><a href="http://htaccess.wordpress.com/tag/htaccess-mod-rewrite/" target="_blank">http://htaccess.wordpress.com/tag/htaccess-mod-rewrite/</a>]]></content:encoded>
			<wfw:commentRss>http://applicationdeveloper.net/2009/07/13/seo-friendly-links-htaccess-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->