<?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>GraysUnderground.com</title>
	<atom:link href="http://www.graysunderground.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.graysunderground.com</link>
	<description>Gray's Tech Blog</description>
	<lastBuildDate>Wed, 15 Apr 2009 21:57:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Validate an email address using regular expressions</title>
		<link>http://www.graysunderground.com/2009/04/15/validate-an-email-address-using-regular-expressions/</link>
		<comments>http://www.graysunderground.com/2009/04/15/validate-an-email-address-using-regular-expressions/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 21:55:41 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[PHP]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2009/04/15/validate-an-email-address-using-regular-expressions/</guid>
		<description><![CDATA[If you want a PHP script to validate an email address here is a quick and simple PHP regular expression to do it. This script is also case-insensitive, so it will treat all characters as lower case. This script is a simple and  easy way to check the syntax and format of an email address.
The [...]]]></description>
			<content:encoded><![CDATA[<p>If you want a PHP script to validate an email address here is a quick and simple PHP regular expression to do it. This script is also case-insensitive, so it will treat all characters as lower case. This script is a simple and  easy way to check the syntax and format of an email address.</p>
<h2>The code</h2>
<pre><code><span style="color: #000000">
<span style="color: #0000bb">&lt;?php

$email </span><span style="color: #007700">= </span><span style="color: #dd0000">"someone@example.com"</span><span style="color: #007700">;

if(</span><span style="color: #0000bb">eregi</span><span style="color: #007700">(</span><span style="color: #dd0000">"^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$"</span><span style="color: #007700">, </span><span style="color: #0000bb">$email</span><span style="color: #007700">)) {

  echo </span><span style="color: #dd0000">"Valid email address."</span><span style="color: #007700">;

}

else {

  echo </span><span style="color: #dd0000">"Invalid email address."</span><span style="color: #007700">;

}

</span><span style="color: #0000bb">?&gt;</span>
</span>
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2009/04/15/validate-an-email-address-using-regular-expressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to disable FireFox caching</title>
		<link>http://www.graysunderground.com/2009/03/18/how-to-disable-firefox-caching/</link>
		<comments>http://www.graysunderground.com/2009/03/18/how-to-disable-firefox-caching/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 18:12:19 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[General Tech]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2009/03/18/how-to-disable-firefox-caching/</guid>
		<description><![CDATA[Web browser caching is good. But even now in the days of 20+Mb broadband, caching web requests still speeds browsing up. It’s also saves money in bandwidth costs.
At home, and work, I set up a caching proxy server with pfSense and Squid, rendering my browser cache effectively useless. Here’s how to disable FireFox’s browser cache [...]]]></description>
			<content:encoded><![CDATA[<p>Web browser caching is good. But even now in the days of 20+Mb broadband, caching web requests still speeds browsing up. It’s also saves money in bandwidth costs.</p>
<p>At home, and work, I set up a caching proxy server with pfSense and Squid, rendering my browser cache effectively useless. Here’s how to disable FireFox’s browser cache completely.</p>
<ol>
<li>   Fire up FireFox</li>
<li>   Type about:config in your address bar</li>
<li>   Type ‘cache’ in the search bar, and look for network.http.use-cache, and double click it to set it to false. Double clicking it again will set it to true and re-enable the cache</li>
</ol>
<p>To forcibly reload a page and all its dependencies, direct from source, ignoring local and proxy caches hold the shift key and hit reload. This applies not only to FireFox but also IE6/7 and Safari (maybe others too).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2009/03/18/how-to-disable-firefox-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux &#8211; CentOS &#8211; Mail &#8212; Delete alll mail in centos using mail</title>
		<link>http://www.graysunderground.com/2008/11/04/linux-centos-mail-delete-alll-mail-in-centos-using-mail/</link>
		<comments>http://www.graysunderground.com/2008/11/04/linux-centos-mail-delete-alll-mail-in-centos-using-mail/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 15:32:03 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[Linux]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/11/04/linux-centos-mail-delete-alll-mail-in-centos-using-mail/</guid>
		<description><![CDATA[Just run the following command from the command line:
echo 'd *' &#124; mail -N
]]></description>
			<content:encoded><![CDATA[<p>Just run the following command from the command line:</p>
<pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: auto; height: 34px">echo 'd *' | mail -N</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/11/04/linux-centos-mail-delete-alll-mail-in-centos-using-mail/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Perl Snippet to tell you how many files in a directory.</title>
		<link>http://www.graysunderground.com/2008/10/04/perl-snippet-to-tell-you-how-many-files-in-a-directory/</link>
		<comments>http://www.graysunderground.com/2008/10/04/perl-snippet-to-tell-you-how-many-files-in-a-directory/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 15:39:09 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[PERL]]></category>
		<category><![CDATA[Programmming]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/10/04/perl-snippet-to-tell-you-how-many-files-in-a-directory/</guid>
		<description><![CDATA[Great little perl snippet to let you know the number of files and directories in the current directory. Run from the command line.
ls -l &#124;perl -e 'while(&#60;&#62;){$h{substr($_,0,1)}+=1;} END {foreach(keys %h){print "$_ $h{$_}\n";}}'
]]></description>
			<content:encoded><![CDATA[<p>Great little perl snippet to let you know the number of files and directories in the current directory. Run from the command line.</p>
<p><code>ls -l |perl -e 'while(&lt;&gt;){$h{substr($_,0,1)}+=1;} END {foreach(keys %h){print "$_ $h{$_}\n";}}'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/10/04/perl-snippet-to-tell-you-how-many-files-in-a-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just some code I don&#8217;t want to forget</title>
		<link>http://www.graysunderground.com/2008/09/09/just-some-code-i-dont-want-to-forget/</link>
		<comments>http://www.graysunderground.com/2008/09/09/just-some-code-i-dont-want-to-forget/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 20:47:12 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[Javascript]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/09/09/just-some-code-i-dont-want-to-forget/</guid>
		<description><![CDATA[
&#60;form method="post" action="blah.php" onSubmit="return confirm('Are you sure this is correct?');"&#62;
]]></description>
			<content:encoded><![CDATA[<p><span name="KonaFilter"></span></p>
<pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 3px; overflow: auto; width: 700px; height: 34px; text-align: left">&lt;form method="post" action="blah.php" onSubmit="return confirm('Are you sure this is correct?');"&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/09/09/just-some-code-i-dont-want-to-forget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Frameworks</title>
		<link>http://www.graysunderground.com/2008/05/24/php-frameworks/</link>
		<comments>http://www.graysunderground.com/2008/05/24/php-frameworks/#comments</comments>
		<pubDate>Sat, 24 May 2008 21:46:33 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[PHP]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/05/24/php-frameworks/</guid>
		<description><![CDATA[Been thinking of using a PHP framework found a very interesting slideshow on the Zend Framework. Any opinions?

 &#124; View &#124; Upload your own


]]></description>
			<content:encoded><![CDATA[<p>Been thinking of using a PHP framework found a very interesting slideshow on the Zend Framework. Any opinions?</p>
<div style="width:425px;text-align:left" id="__ss_62816"><object style="margin:0px" height="355" width="425"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpbootcamp-zend-framework544"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpbootcamp-zend-framework544" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/thomasw/phpbootcamp-zend-framework" title="View this slideshow on SlideShare">View</a> | <a href="http://www.slideshare.net/upload">Upload your own</a></div>
</div>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMTE1Nzg3ODg5MzMmcHQ9MTIxMTU3ODc5MzE3OCZwPTEwMTkxJmQ9Jm49Jmc9Mg==.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/05/24/php-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 Scalability Mistakes with PHP</title>
		<link>http://www.graysunderground.com/2008/05/23/top-10-scalability-mistakes-with-php/</link>
		<comments>http://www.graysunderground.com/2008/05/23/top-10-scalability-mistakes-with-php/#comments</comments>
		<pubDate>Fri, 23 May 2008 21:02:02 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[PHP]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/05/23/top-10-scalability-mistakes-with-php/</guid>
		<description><![CDATA[Found a great slide that talks about the top 10 mistakes when programming scalable applications with PHP. Discusses everything from hardware to AJAX. The AJAX piece I found to be very interesting. Check it out and give me your thoughts.

 &#124; View &#124; Upload your own

]]></description>
			<content:encoded><![CDATA[<p>Found a great slide that talks about the top 10 mistakes when programming scalable applications with PHP. Discusses everything from hardware to AJAX. The AJAX piece I found to be very interesting. Check it out and give me your thoughts.</p>
<div style="width:425px;text-align:left" id="__ss_157937"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=top-10-scalability-mistakes-1194421978989888-1"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=top-10-scalability-mistakes-1194421978989888-1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/coogle/top-10-scalability-mistakes?src=embed" title="View Top 10 Scalability Mistakes on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/05/23/top-10-scalability-mistakes-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick and easy PHP function to Validate email strings.</title>
		<link>http://www.graysunderground.com/2008/04/25/quick-and-easy-php-function-to-validate-email-strings/</link>
		<comments>http://www.graysunderground.com/2008/04/25/quick-and-easy-php-function-to-validate-email-strings/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 16:52:09 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[PHP]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/04/25/quick-and-easy-php-function-to-validate-email-strings/</guid>
		<description><![CDATA[Quick and easy way to validate email strings. I picked this bit of code up from somewhere, not sure where&#8230;.Think it was the Zend site. Credit goes to the original unknown author, not me.
&#60;?php
 function is_email($address) {
 $rc1 = (ereg('^[-!#$%&#38;'*+./0-9=?A-Z^_`a-z{&#124;}~]+'.
'@'.
'[-!#$%&#38;'*+\/0-9=?A-Z^_`a-z{&#124;}~]+.'.
'[-!#$%&#38;'*+\./0-9=?A-Z^_`a-z{&#124;}~]+$',
 $address));
 $rc2 = (preg_match('/.+.ww+$/',$address));
return ($rc1 &#38;&#38; $rc2);
}
 ?&#62;
]]></description>
			<content:encoded><![CDATA[<p>Quick and easy way to validate email strings. I picked this bit of code up from somewhere, not sure where&#8230;.Think it was the Zend site. Credit goes to the original unknown author, not me.</p>
<p><code><font color="#000000"><font color="#0000bb">&lt;?php<br />
</font> <font color="#007700">function</font> <font color="#0000bb">is_email</font><font color="#007700">(</font><font color="#0000bb">$address</font><font color="#007700">) {<br />
</font> <font color="#0000bb">$rc1</font> <font color="#007700">= (</font><font color="#0000bb">ereg</font><font color="#007700">(</font><font color="#dd0000">'^[-!#$%&amp;'</font><font color="#007700">*+./</font><font color="#0000bb">0</font><font color="#007700">-</font><font color="#0000bb">9</font><font color="#007700">=?</font><font color="#0000bb">A</font><font color="#007700">-</font><font color="#0000bb">Z</font><font color="#007700">^</font><font color="#0000bb">_</font><font color="#007700">`</font><font color="#0000bb">a-z</font><font color="#007700">{</font><font color="#0000bb">|</font><font color="#007700">}</font><font color="#0000bb">~</font><font color="#007700">]</font><font color="#0000bb">+'.<br />
'@'.<br />
'</font><font color="#007700">[</font><font color="#0000bb">-!#</font><font color="#007700">$</font><font color="#0000bb">%&amp;'*+\/0-9=?A-Z^_</font><font color="#007700">`</font><font color="#0000bb">a</font><font color="#007700">-</font><font color="#0000bb">z</font><font color="#007700">{|}~]+.</font><font color="#dd0000">'.<br />
'</font><font color="#007700">[-!</font><font color="#ff8000">#$%&amp;'*+\./0-9=?A-Z^_`a-z{|}~]+$',<br />
</font> <font color="#0000bb">$address</font><font color="#007700">));<br />
</font> <font color="#0000bb">$rc2</font> <font color="#007700">= (</font><font color="#0000bb">preg_match</font><font color="#007700">(</font><font color="#dd0000">'/.+.ww+$/'</font><font color="#007700">,</font><font color="#0000bb">$address</font><font color="#007700">));<br />
return (</font><font color="#0000bb">$rc1</font> <font color="#007700">&amp;&amp;</font> <font color="#0000bb">$rc2</font><font color="#007700">);<br />
}<br />
</font> <font color="#0000bb">?&gt;</font></font></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/04/25/quick-and-easy-php-function-to-validate-email-strings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick tip for you PHP/Opera Users!</title>
		<link>http://www.graysunderground.com/2008/04/24/quick-tip-for-you-phpopera-users/</link>
		<comments>http://www.graysunderground.com/2008/04/24/quick-tip-for-you-phpopera-users/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 16:49:21 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[Opera]]></category>
		<category><![CDATA[PHP]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/04/24/quick-tip-for-you-phpopera-users/</guid>
		<description><![CDATA[  In Opera, go to Tools &#8211;&#62; Preferences, and click on the search tab. You  should &#8220;Add a new search engine&#8221; and fill in the blanks. Here is what I use:.

Name: PHP
Keyword: p
Address: http://www.php.net/search.php
Query string: pattern=%s&#38;show=quickref

  You have to check &#8220;Use POST&#8221; to be able to type in a query string.
Click OK, [...]]]></description>
			<content:encoded><![CDATA[<p>  In Opera, go to Tools &#8211;&gt; Preferences, and click on the search tab. You  should &#8220;Add a new search engine&#8221; and fill in the blanks. Here is what I use:.</p>
<ul>
<li>Name: PHP</li>
<li>Keyword: p</li>
<li>Address: http://www.php.net/search.php</li>
<li>Query string: pattern=%s&amp;show=quickref</li>
</ul>
<p class="note">  You have to check &#8220;Use POST&#8221; to be able to type in a query string.</p>
<p>Click OK, and then click Ok.</p>
<p>From now on you will be able to search  the PHP function list by typing &#8220;p function&#8221; in the address bar. You can change &#8220;quickref&#8221; to &#8220;all&#8221; if you want to  search all php.net sites, or &#8220;manual&#8221; for the online documentation.</p>
<p>Enjoy! I orignally picked this tip up from PHP.net, don&#8217;t know the exact URL tho.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/04/24/quick-tip-for-you-phpopera-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make sure you hide your Apache headers!!</title>
		<link>http://www.graysunderground.com/2008/02/08/make-sure-you-hide-your-apache-headers/</link>
		<comments>http://www.graysunderground.com/2008/02/08/make-sure-you-hide-your-apache-headers/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 15:10:48 +0000</pubDate>
		<dc:creator>Gray</dc:creator>
				<category><![CDATA[Apache]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.graysunderground.com/2008/02/08/make-sure-you-hide-your-apache-headers/</guid>
		<description><![CDATA[When  Apache  generates any web pages or error pages, some important information about the version and other details implemented on the system are displayed in th web site server header. For example, the information text may be like this:
 Server: Apache/1.3.37 (Unix) mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7a PHP-CGI/0.1b
 Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 [...]]]></description>
			<content:encoded><![CDATA[<p>When  Apache <a href="http://amazon.com/gp/product/1576103919?ie=UTF8&amp;tag=techgadgetrev-20&amp;link_code=em1&amp;camp=212341&amp;creative=384061&amp;creativeASIN=1576103919&amp;adid=7e53cf3c-edcc-4185-859e-394fc11260a4" title="1576103919" name="1576103919" id="amzn_cl_link_0" style="border-bottom: 1px solid; color: #0000ff; text-decoration: underline; padding-bottom: 1px"></a> generates any web pages or error pages, some important information about the version and other details implemented on the system are displayed in th web site server header. For example, the information text may be like this:</p>
<blockquote><p> Server: Apache/1.3.37 (Unix) mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7a PHP-CGI/0.1b</p></blockquote>
<blockquote><p> Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 Server at xx.xx.xx.xx Port 80</p></blockquote>
<p><span id="more-4257"></span><br />
The line in the server header expose important version and variant information about the Linux operating system and Apache software used on the machine, indirectly expose the possible security holes that are existed to the hackers, or at least make malicious attackers easier to identify your system for available attack points.</p>
<p>To ensure that the Apache HTTP web server does not broadcast this message to the whole world publicly and fix possible security issue, modify these two directives <strong>ServerTokes</strong> and <strong>ServerSignature</strong> in httpd.conf<nobr></nobr> file.</p>
<ol>
<li>Login as root user or perform a sudo to the web server.</li>
<li>Open and edit httpd.conf or apache2.conf (in Apache 2) with vi or other text editor. The Apache  config <nobr></nobr> normally located in /etc/httpd/conf/ or /etc/apache2/ or /etc/apache/ (for Apache1.3) depending on which Unix you’re using.</li>
<li>Locate the line with <strong>ServerTokens</strong>. You can perform a search by typing “/ServerTokes” and hit Enter.</li>
<li>In Apache 1.3, you will likely to see a line starts with <strong>#ServerTokes Full</strong> In this case, remove or delete the # character (by pressing d key). Also modify the Full to become Prod (press r key to replace one character, or R to replace multiple characters), so that the line becomes <strong>ServerTokens Prod</strong>. In Apache 2.0 or 2.2, the line normally does not exist. So the search will fail. In this case, go to the bottom of config file, and add the new line with the following text. You can add new line by pressing o key.ServerTokens Prod</li>
<li>Next, search for ServerSignature. In Apache13, the line should just above the line of ServerTokens. Edit the line so that it looks like this, and in Apache2 which doesn’t already have this line, add in at new one.ServerSignature Off</li>
<li>By now the Apache configuration file should have this two directives set as below:ServerSignature Off<br />
ServerTokens ProdThe first line “ServerSignature Off” instructs Apache not to display a trailing footer line under server-generated documents (error messages, mod_proxy ftp directory listings, mod_info output, and etc) which displays server version number, ServerName of the serving virtual host, email setting, and creates a “mailto:” reference to the ServerAdmin of the referenced document.The second line “ServerTokens Prod” configures Apache to return only Apache as product in the server response header on very page request, suppressing OS, major and minor version info.</li>
<li>Save and close the config file by pressing Shift-Colon, and then type wq keys, and hit Enter.</li>
<li>Restart Apache. Typical command is <em>service httpd restart</em> or <em>/etc/init.d/apache2 restart</em>.</li>
<li>Now, you will get only the Apache in the server response header:Server: Apache</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.graysunderground.com/2008/02/08/make-sure-you-hide-your-apache-headers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
