Total Pageviews

setup a 301 Redirect

The “301 Permanent Redirect” is the most efficient and search engine friendly method for redirecting websites. You can use it in several situations, including:
  • to redirect an old website to a new address
  • to setup several domains pointing to one website
  • to enforce only one version of your website (www. or no-www)
  • to harmonize a URL structure change
There are several ways to setup a 301 Redirect, below I will cover the most used ones:
PHP Single Page Redirect
In order to redirect a static page to a new address simply enter the code below inside the index.php file.
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.com/page.html");
exit();
?>

PHP Canonical Redirect
The Canonical 301 Redirect will add (or remove) the www. prefixes to all the pages inside your domain. The code below redirects the visitors of the http://domain.com version to http://www.domain.com.
<?php
if (substr($_SERVER['HTTP_HOST'],0,3) != 'www') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.'.$_SERVER['HTTP_HOST']
.$_SERVER['REQUEST_URI']);
}
?>

Apache .htaccess Singe Page Redirect
In order to use this method you will need to create a file named .htaccess (not supported by Windows-based hosting) and place it on the root directory of your website, then just add the code below to the file.
Redirect 301 /old/oldpage.htm /new/http://www.domain.com/newpage.htm
Apache .htaccess Canonical Redirect
Follow the same steps as before but insert the code below instead (it will redirect all the visitors accessing http://domain.com to http://www.domain.com)
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

ASP Single Page Redirect
This redirect method is used with the Active Server Pages platform.
<%
Response.Status="301 Moved Permanently"
Response.AddHeader='Location','http://www.new-url.com/'
%>

ASP Canonical Redirect

The Canonical Redirect with ASP must be located in a script that is executed in every page on the server before the page content starts.
<%
If InStr(Request.ServerVariables("SERVER_NAME"),"www") = 0 Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www."
& Request.ServerVariables("HTTP_HOST")
& Request.ServerVariables("SCRIPT_NAME")
End if
%>



source: dailyblogtips

Add American or English Accent voice into your videos through softwares

If you are looking to add the voice into your tutorials and videos in English in American accent and do not find suitable human resource, the softwares can help you out, but remember it has its on limitations.

Most of such softwares are paid, but are the worth buying it.

texttospeech is one of the very popular and easy to use software and I put it on the top of the list.

http://www2.research.att.com/~ttsweb/tts/demo.php This is another good option

URL Rewriting Software for ASP.NET

Download here URL Rewriting Software for ASP.NET


http://space.dl.sourceforge.net/project/urlrewriter/urlrewriter.net/UrlRewriter.NET%202.0%20RC1/urlrewriternet20rc1b6.zip



https://182c96a2-a-62cb3a1a-s-sites.googlegroups.com/site/dotnetguts2/myURLRewrite.zip?attachauth=ANoY7cpurT-MGmFkKhkCNA1PqwiF2093RnR_HSIe6qVK0BBRfF_s840fQhqchLrixpmHcrBdIf-3CSt-_B_YLpuwO6KQ216lp3w7QlU3JtpQQQzx4jZUd4GEvyEO87FsK465WHnzEgrHiyxh2DEpXk0XMuaf8EWOhM1BajndYY5HwoQXOJZEVN75koKTJoo_rdYU-lPXox1uQxHs-o5F9FAOOz1wt8RNnA%3D%3D&attredirects=0


or

<rewriter>
 <rewrite url="~/UserDetails/(.+?)/(.+?)/(.+?)/(.+?)/(.+?)/(.+?)/(.+).aspx" to="~/DynamicPage.aspx?ParameterOne=$1&amp;ParameterTwo=$2&amp;ParameterThree=$3&amp;ParameterFour=$4&amp;ParameterFive=$5&amp;ParameterSix=$6" processing="stop"/>
</rewriter>

URL Rewriting in ASP.NET, and for Apache Server.

URL Rewriting for Apache server

One of the most popular extensions to the Apache webserver has been mod_rewrite - a filter which rewrites URLs. For example, instead of a URL such as
http://www.apache.org/BookDetails.pl?id=5
you could provide a filter which accepts URLs such as
http://www.apache.org/Book/5.html
and it will silently perform a server-side redirect to the first URL. In this way, the real URL could be hidden, providing an obfuscated facade to the web page. The benefits are easier to remember URLs and increasing the difficulty of hacking a website. Mod_rewrite became very popular and grew to encompass a couple of other features not related to URL Rewriting, such as caching. This article demonstrates URL Rewriting with ASP.NET, whereby the requested URL is matched based on a regular expression and the URL mappings are stored in the standard ASP.NET web.config configuration file. ASP.NET includes great caching facilities, so there's no need to duplicate mod_rewrite's caching functionality.
As more and more websites are being rewritten with ASP.NET, the old sites which had been indexed by google and linked from other sites are lost, inevitably culminating in the dreaded 404 error. I will show how legacy ASP sites can be upgraded to ASP.NET, while maintaining links from search engines.

ASP.NET support for URL Rewriting

ASP.NET provides very limited support out of the box. In fact, it's support is down to a single method:
void HttpContext.RewritePath(string path)
which should be called during the Application_BeginRequest() event in the Global.asax file. This is fine as long as the number of URLs to rewrite is a small, finite, managable number. However most ASP sites are in some way dynamic, passing parameters in the Query String, so we require a much more configurable approach. The storage location for all ASP.NET Configuration information is the web.config file, so we'd really like to specify the rewrites in there. Additionally, .Net has a fast regular expression processor, giving free and fast search and replace of URLs. Let's define a section in the web.config file which specifies those rewrites:
<configuration>
  <system.web>
        <urlrewrites>
            <rule>
                <url>/urlrewriter/show\.asp</url>
                <rewrite>show.aspx</rewrite>
            </rule>
            <rule>
                <url>/urlrewriter/wohs\.asp</url>
                <rewrite>show.aspx</rewrite>
            </rule>
            <rule>
                <url>/urlrewriter/show(.*)\.asp</url>
                <rewrite>show.aspx?$1</rewrite>
            </rule>
            <rule>
                <url>/urlrewriter/(.*)show\.html</url>
                <rewrite>show.aspx?id=$1&amp;cat=2</rewrite>
            </rule>
            <rule>
                <url>/urlrewriter/s/h/o/w/(.*)\.html</url>
                <rewrite>/urlrewriter/show.aspx?id=$1</rewrite>
            </rule>
        </urlrewrites>
    </system.web>
</configuration>
Notice how we have to escape the period in the url element such as 'show\.asp'. This is a Regular Expression escape and it's a small price to pay for the flexibility of regular expressions. These also show how we set-up a capturing expression using (.*) in the <url> element and refer to that capture in the <rewrite> element with $1

Configuration Section Handlers

.Net's configuration mechanism requires us to write code as a "handler" for this section. Here's the code for that:
<configuration>
    <configSections>
        <sectionGroup name="system.web">
          <section name="urlrewrites" type="ThunderMain.URLRewriter.Rewriter,
              ThunderMain.URLRewriter, Version=1.0.783.30976,
              Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/>
        </sectionGroup>
    </configSections>
</configuration>
This section handler specifies that for every section called "urlrewrites", there is a class called ThunderMain.URLRewriter.Rewriter which can be found in the ThunderMain.URLRewriter.dll assembly with the given public key token. The public key token is required because this assembly has to be placed into the GAC and therefore given a strong name.
A section handler is defined as a class which implements the IConfigurationSectionHandler interface. This has one method, Create(), which should be implemented, and in our code that is very simple. It merely stores the urlrewrites element for later use:
public object Create(object parent, object configContext, XmlNode section) 
{
    _oRules=section;

    return this;
}

Initiating the rewrite process

Coming back to actually rewriting the URL, as I said earlier, we need to do something in the Application_BeginRequest() event in Global.asax - we just delegate this to another class:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
    ThunderMain.URLRewriter.Rewriter.Process();
}
which calls the static method Process() on the Rewriter class. Process() first obtains a reference to the configuration section handler (which happens to be an instance of the current class) and then delegates most of the work to GetSubstitution() - an instance method of this class.
public static void Process() 
{
    Rewriter oRewriter=
       (Rewriter)ConfigurationSettings.GetConfig("system.web/urlrewrites");

    string zSubst=oRewriter.GetSubstitution(HttpContext.Current.Request.Path);

    if(zSubst.Length>0) {
        HttpContext.Current.RewritePath(zSubst);
    }
}
GetSubstitution() is just as simple - iterating through all possible URL Rewrites to see if one matches. If it does, it returns the new URL, otherwise it just returns the original URL:
public string GetSubstitution(string zPath) 
{
    Regex oReg;

    foreach(XmlNode oNode in _oRules.SelectNodes("rule")) {
        oReg=new Regex(oNode.SelectSingleNode("url/text()").Value);
        Match oMatch=oReg.Match(zPath);

        if(oMatch.Success) {
            return oReg.Replace(zPath,
                             oNode.SelectSingleNode("rewrite/text()").Value);
        }
    }

    return zPath;
}

Installing the sample code

Extract the code into a URLRewriter folder, then turn this into a virtual directory using the Internet Information Services MMC control panel applet. Compile the code use the 'Make Rewriter.bat' batch script into the bin sub-folder. Then add bin/ThunderMain.URLRewriter.dll to the Global Assembly Cache by copying and pasting the dll into %WINDIR%\assembly using Windows Explorer. Finally, navigate to http://localhost/URLRewriter/default.aspx and try the demo URLs listed.
None will actually work because there's one last thing we have to be aware of...

Finally

There's one major caveat with all this. If you want to process a request with a file extension other than .aspx such as .asp or .html, then you need to change IIS to pass all requests through to the ASP.NET ISAPI extension. Unfortunately, you will need physical access to the server to perform this, which prevents you from simply XCOPY deploying your code to an ISP.
Adding a mapping for all file types
We've added the HEAD, GET and POST verbs to all files with .* file extension (ie all files) and mapped those to the ASP.NET ISAPI extension - aspnet_isapi.dll.
A mapping for all file types has been added
The complete range of mappings, including the new .* mapping.


Source:  codeproject

Send an Email Blast Without Getting Spam’d

Tips to send Bulk Mails without getting SPAMed
  1) As time goes on, spam checkers are getting stronger and smarter. There's a lot about this email that might increase its SPAM score. The subject line starts with the word "FREE" and it's in ALL CAPS, both will increase the message's SPAM score. You've also got the word "GUARANTEED" in ALL CAPS, and multiple exclamation marks (!!!), spam filters also don't like the word "Survey" (I know, right?) which is in the subject line, in ALL CAPS. So what to do? Let's change it up a little!

To Send an Email Blast:
1)      You must first begin by creating a email list in Excel.
  • With Outlook, you simply open the Contacts, then click on File – Import & Export -  Export to a File (and Next) – Microsoft Excel (1997-2003) and Next – select Contacts and Next – choose where you want to save it by selecting “Browse”, the location (I like the Desktop because it’s easy to find later), and rename it  then OK to get back to the save screen – Next – then Finish.
  • Once you have created the list, you will want to open it and remove any names of people and companies that you don’t want to get your email blasts.  This could be names like United Airlines, any credit card company contacts, people you think are jerks, etc.  Also, remove any names that don’t have emails.
2)      Open up a Word Document and type up your email message exactly how you would like it to look.  That means add your signature line.
3)      When you’re done, go to the Mailings Wizard and click on “Start Mail Merge”.  For 2007 Office it will look like this:

  • For older versions, you want to find the Mail Merge Wizard.  You may have to search the “Help” topics to know which menu item it’s under.
4)      From the Start Mail Merge menu, click on “Step by Step Mail Merge Wizard” (usually the last choice in the drop-down menu.
5)      A sidebar will pop up that will walk you through the steps.  It will look something like this:

6)      From this menu, just click “Email Messages” and click the “Next” step at the bottom.  Go through each of the steps until you get to the final screen.  As you can see, it’s only 6 Steps.
7)      At Step 3, you will be prompted to select your Excel Email list.  You will “Browse” for it, then find it – hopefully on your Desktop.  Once you open it, the Mail Merge Wizard will prompt you to choose a Worksheet Tab – and usually show you two.  Pick the worksheet that has your contacts in it.
8)      Next, you will be taken to a “Mail Merge Recipients List” where you will match up the headings from your Email List to your Word List.  Most of the headings will be filled in correctly already.  Just double check that there are actually emails where emails belong and names and companies where they belong before you press OK and continue onto the Next Step.
9)      At Step 4, you will be able to add your address blocks and greeting lines.  Make sure you choose at least the Greeting Line feature so that each email will be customized to the person receiving the email.
10)  After you’ve completed “Step 6 - Complete the Merge”, the emails will be ready to go, but they will not be sent. You have to actually click on “Finish and Merge” in the toolbar at the top.  It will look like:

  • Then click “Send E-Mail Messages.”
  • Once you click “Send,” your computer will attempt to send it through your Microsoft Outlook Outbox.  That means, if you have not set up your Outlook outbox before, you will need to set that up.
Mailing Managers:
http://mailchimp.com/features/email-delivery/
Mailjet.


Mail Authetiction:
Use email authentication methods, such as SPF, and DKIM to prove that your emails and your domain name belong together, and to prevent spoofing of your domain name. The SPF website includes a wizard to generate the DNS information for your site.
Check your reverse DNS to make sure the IP address of your mail server points to the domain name that you use for sending mail.
Make sure that the IP-address that you're using is not on a blacklist
Make sure that the reply-to address is a valid, existing address.
Use the full, real name of the addressee in the To field, not just the email-address (e.g. "John Smith" <john@blacksmiths-international.com> ).
Monitor your abuse accounts, such as abuse@yourdomain.com and postmaster@yourdomain.com. That means - make sure that these accounts exist, read what's sent to them, and act on complaints.
Finally, make it really easy to unsubscribe. Otherwise, your users will unsubscribe by pressing the spam button, and that will affect your reputation.
    source: onehourbookkeeper, stackoverflow

    Onpage SEO optimization for Dynamic Websites

    This article I found during my research on web for Onpage SEO optimization for Dynamic Websites. Sharing this with my viewers to get the advantage of correct information in proper manner.

    Please note that these examples are for *nix based web servers running Apache. If you have a Windows based web host running IIS, then this code won't help you.

    EXAMPLE 1 - E-COMMERCE SITE 
    Sad Original URL = site.com/page.php?category=2&product=54
    Happy URL :) =  site.com/sandwiches/rueben-sandwich/
    step 1:
    Make sure that all category names and product names are unique in your database.
    step 2:
    Replace all references to Original URL with the New URL throughout your website.
    step 3:
    Use mod_rewrite in your .htaccess file to parse out the elements of the URL. Like this:
    RewriteEngine On
    RewriteRule /(.*)/(.*)/$ page.php?category=$1&product=$2
    the (.*) pulls the elements out and puts them in variables $1 and $2.
    step 4:
    Update your code on the page.php file to get the data from the database via the category and product name instead of by ID (this is why the names must be unique). For example:
    Before: "select * from database_table where categegory_id='$category' and product_id='$product'"
    After:  "select * from database_table where categegory_name='$category' and product_name='$product'"
    NOTE: This is just a quick and simple example that doesn't consider sanitizing input for security (which you must do) or any table joins you might need to do on your site.

    EXAMPLE 2 - CUSTOM CMS DRIVEN SITE Here's another example. This is the way I manage the URLs on my custom CMS as described in my previous YOUmoz post.
    step 1:
    URLs can be absolutely anything you can dream up. Everything after site.com becomes that page's unique page_id.
    site.com/section1/subsection/page-title/
    site.com/blog/blog-section/blog-post/
    site.com/about-us/
    site.com/anything-you-want/does-not/matter-how/many/slashes-or-dashes/
    step 2:
    In your .htaccess file everything after the site.com domain name is going to be the unique page ID. So, I use this RewriteRule to pass it to the load_page.php file.
    RewriteEngine On
    RewriteRule (.*)/$ load_page.php?&page_id=$1
    step 3:
    In load_page.php, I get all the content for the page from the database like this:
    "select * from pages where page_url='".mysql_real_escape_string($page_id)."'";

    Hope this is helpful. Please note that this post has been written for a technical audience. I'll try my best to answer any questions posted in the comments.

    Source: seomoz

    What is canonical tag?

     Canonical tag helps you to avoid the duplicate page/ content issue. It can be addressed with adding the canonical tag to your pages. There is a strong chance that will fix your duplicate page title issue as well.

    If your site publishes content that can be reached via multiple URLs, you can gain more control over how your URLs appear in search results by specifying a canonical (preferred) version of the URL. Using the parameter handling tool is one way to do this, but you can also give Google additional information by adding the rel="canonical" element to the HTML source of your preferred URL. (To use rel="canonical", you'll need to be able to edit your pages' source code.) More information about canonicalization. Use which option works best for you; it's fine to use both if you want to be very thorough.

    Source: Google

    Techniques for SEO for Dynamic sites

    Just came across an interesting article, which my readers could enjoy and get benefited. It explains the techniques for SEO for Dynamic sites:

    General Dynamic Page Listing Tips

    Search engines are getting better at listing dynamic web pages. There are a few basic thumb rules to help search engines index your dynamic website.
    • Build a linking campaign. As you get more inbound links search engine spiders will have more reason to trust the quality of your content and they will spider deeper through your site.
    • Use short query strings. Most search engines will do well to list dynamic pages if each query string is kept less than 10 digits.
    • Minimize the number of variables. When possible you want to use three or less different parameters, the fewer the better. If you use long parameter strings and a half dozen parameters it is a fair bet that the site will not get indexed.
    • If you still have problems you can use a CGI script to take the query string out of your dynamic content or try one of the other dynamic page workarounds listed below.
    • Other dynamic workarounds: There are multiple ways to list dynamic web pages in search engines. Common techniques are:
      • Hard coded text links
      • Bare bone pages
      • Coldfusion site maps
      • Apache Mod Rewrite
      • IIS Rewrite Software
      • Paid Inclusion

    Hard Coded Text Link

    To list dynamic web pages in search engines you can capture the entire url in a link like:
    <a href="http://www.search-marketing.info/catalog.html?item=widget&color=green&model=6">Green widgets style 6</a>
    If you use static links like listed above to reference dynamic pages, search engines will usually be able to index them. Many sites use a site map which captures the most important interior pages.
    If you have enough link popularity and link into a couple of your main category pages using static links then search engines will usually be able to index the rest of the site.

    Bare Bones Pages

    You also can make a bare bones static page for each one you want listed in search engines.
    <html>
    <head>
    <title>Green Widgets style 6</title>
    </head>
    <body>
    <!--#exec cgi="myscript.pl?greenwidget-6"-->
    </body>
    </html>

    Site Map

    URL Rewriting  using:

    a) Apache Mod Rewrite

    For Apache servers there is a way to make dynamic pages seem like static pages called Mod Rewrite. The documentation on MOD Rewrite is located on the Apache website. Apache MOD Rewrite.

    b) IIS Rewrite Software

    IIS servers do not have the built in rewrite features like Apache Mod Rewrite. You still can rewrite your URL's on IIS servers using custom built software programs.

    Trusted Feed Paid Inclusion

    You can pay to use trusted feeds to upload dynamic content to Yahoo! to acquire traffic at a cost per click bases through the Overture Site Match program. I would consider this a last option for many sites since many business models can not support the incremental cost per click charges.

    Canonical Tag


     The duplicate page issue can be addressed with adding the canonical tag to your pages. There is a strong chance that will fix your duplicate page title issue as well.

    Social Media Optimisation

    link to these pages from websites like facebook, twitter to have fast crawling.

    Robot.txt

     Tell Google in your robots.txt that it can access your website and make sure non of the pages you would like to be indexed carry the noindex-value in the robots meta-tag.




    Editing .Htaccess from WordPress


    There are many WordPress plugins which offers feature to edit Htaccess file from Wp dashboard. One of them is Meta robots plugin, which not only let you edit default one but also one which is added by Super cache in cache dir. This, is again useful but for newbie, I suggest use it without own risk. Because, even a single wrong code can bring your site down and you need to use cPanel or FTP to fix the error.

    Setting URL Parameters in Google Webmaster Tool


    Defining URL parameters or rewriting URL using Google Webmaster Tool is one of the important strategy of Onpage SEO technique. This technique is important to do SEO of dynamic websites

    URL parameters depend upon your site configuration and architecture that what links will be displayed. In simple words, Parameters can be considered as variables.

    There are .htaccess code which automatically redirects such links to single permalink but at times Google indexed such links along with URL parameters, which not only calls for low quality content but also created duplicate content issue.

    Parameter handling is a useful option under Google webmaster tool to help indexing and deindexing pages which are added due to parameters like nombile, utm_source, replytocom, preview and so on.

    You can access it under configuration > URL parameters.
     
    To understand better, we can take example for replytocom and see how easy it is here:

    You can change settings and see which link will not be indexed after making changes. This is very useful for  websites to noindex different parameter to ensure safeguard from duplication issue.

     
     

    SEO using Google Webmaster Tool



    It may seem we are hoping right from the basic SEO lessons to one of the most direct Onpage strategy: Webmaster tool.

    Its as simple as eating a cake:

    To access all features of Google Webmaster tool, you need to create an account or login using your existing gmail id into Webmaster url.

    After login into, you should add a website, it will give you an html file to upload on your website, to verify the ownership. As its done, you can see the website added into your Webmaster account.

    You can add more sites to your single webmaster account and can view the statistics using clicking on particular site.

    You'll find several options like:

    1) Submitting a Sitemap

    2) Webmaster settings

    3) Manage Google site link for your site

    4) Analysing Top search queries

    5) Keyword Analysis of your website

     

      


     
     

    Basic SEO Techniques



    To Start with SEO lessons, best way is to categories into:

    1) Onpage SEO
    2) Offpage SEO

    Several techniques come under both the categories.

    Lets start with Onpage SEO

    To my understanding to simplisize, we can subcategorise it into

    1a) Keyword analysis and keyword selection is common element in both the categories

    1b) Metatags title, description and keywords insertion

    1c) robots.txt creation and insertion

    1d) Sitemap creation and insertion

    1e) Webmaster tool account creation and using features

    1f) Google Analytics

    To subcategorize Offpage SEO techniques, it is broadly divided into

    2a) Keyword analysis and keyword selection

    2b) Advertising posting

    2c) RSS feed posting

    2d) Indexing on Google Map

    2e) Directory submission

    2f) Article/ blog writing and posting

    2g) Link wheel or link pyramid creation

    2h) Google places

    2i) Business listing