<?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; links</title>
	<atom:link href="http://applicationdeveloper.net/tag/links/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>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="ZeroClipboard6" 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=6&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="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%">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="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">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="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">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="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">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>
		<item>
		<title>String Handling: Parsing Links from a String</title>
		<link></link>
		<comments>http://applicationdeveloper.net/2009/07/10/string-handling-parsing-links-string/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:33:17 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[string handling]]></category>

		<guid isPermaLink="false">http://applicationdeveloper.net/?p=6</guid>
		<description><![CDATA[With the popularity of APIs that connect to Twitter, Facebook, and even sites like StumbleUpon, it&#8217;s becoming increasing important to work with String Handling functions.Here&#8217;s a very handy function to replace a link in a String with the html format for posting on the web.I can&#8217;t remember where I got this from but someone deserves [...]]]></description>
			<content:encoded><![CDATA[With the popularity of APIs that connect to <a href="http://twitter.com">Twitter</a>, <a href="http://facebook.com">Facebook</a>, and even sites like <a href="http://stumbleupon.com">StumbleUpon</a>, it&#8217;s becoming increasing important to work with String Handling functions.<br /><br />Here&#8217;s a very handy function to replace a link in a String with the html format for posting on the web.<br /><br />I can&#8217;t remember where I got this from but someone deserves credit for helping write this:<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="ZeroClipboard12" 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=12&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 clickable_link($text)</pre></td></tr><tr><td class="devcodelines" width="1%">03</td><td class="devcodelinesarea"><pre class="devcode devcodeline">{</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">04</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> $text = preg_replace('#(script|about|applet|activex|chrome):#is', &quot;:&quot;, $text);</pre></td></tr><tr><td class="devcodelines" width="1%">05</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">06</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // pad it with a space so we can match things at the start of the 1st line.</pre></td></tr><tr><td class="devcodelines" width="1%">07</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> $ret = ' ' . $text;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">08</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines" width="1%">09</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> // matches an &quot;xxxx://yyyy&quot; URL at the start of a line, or after a space.</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">10</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // xxxx can only be alpha characters.</pre></td></tr><tr><td class="devcodelines" width="1%">11</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> // yyyy is anything up to the first space, newline, comma, double quote or &lt;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">12</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> $ret = preg_replace(&quot;#(^|[\n ])([\w]+?://[\w\#$%&amp;~/.\-;:=,?@\[\]+]*)#is&quot;, &quot;&lt;a href=&quot;\&quot; target=&quot;\&quot;_blank\&quot;&quot;&gt;&lt;/a&gt;&quot;, $ret);</pre></td></tr><tr><td class="devcodelines" width="1%">13</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">14</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // matches a &quot;www|ftp.xxxx.yyyy[/zzzz]&quot; kinda lazy URL thing</pre></td></tr><tr><td class="devcodelines" width="1%">15</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> // Must contain at least 2 dots. xxxx contains either alphanum, or &quot;-&quot;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">16</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // zzzz is optional.. will contain everything up to the first space, newline,</pre></td></tr><tr><td class="devcodelines" width="1%">17</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> // comma, double quote or &lt;.</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">18</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> $ret = preg_replace(&quot;#(^|[\n ])((www|ftp)\.[\w\#$%&amp;~/.\-;:=,?@\[\]+]*)#is&quot;, &quot;&lt;a href=&quot;\&quot; target=&quot;\&quot;_blank\&quot;&quot;&gt;&lt;/a&gt;&quot;, $ret);</pre></td></tr><tr><td class="devcodelines" width="1%">19</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">20</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // matches an email@domain type address at the start of a line, or after a space.</pre></td></tr><tr><td class="devcodelines" width="1%">21</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> // Note: Only the followed chars are valid; alphanums, &quot;-&quot;, &quot;_&quot; and or &quot;.&quot;.</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">22</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> $ret = preg_replace(&quot;#(^|[\n ])([a-z0-9&amp;\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i&quot;, &quot;&lt;a href=&quot;\&quot;&gt;@&lt;/a&gt;&quot;, $ret);</pre></td></tr><tr><td class="devcodelines" width="1%">23</td><td class="devcodelinesarea"><pre class="devcode devcodeline">&nbsp;</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">24</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> // Remove our padding..</pre></td></tr><tr><td class="devcodelines" width="1%">25</td><td class="devcodelinesarea"><pre class="devcode devcodeline"> $ret = substr($ret, 1);</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">26</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"> return $ret;</pre></td></tr><tr><td class="devcodelines" width="1%">27</td><td class="devcodelinesarea"><pre class="devcode devcodeline">}</pre></td></tr><tr><td class="devcodelines devcodelinesodd" width="1%">28</td><td class="devcodelinesarea devcodelinesareaodd"><pre class="devcode devcodeline"></pre></td></tr></table></div></pre>]]></content:encoded>
			<wfw:commentRss>http://applicationdeveloper.net/2009/07/10/string-handling-parsing-links-string/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! -->
