1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Need some htaccess

Discussion in 'General Programming Chat' started by blazen, Feb 9, 2009.

  1. blazen

    blazen Regular Member

    Joined:
    Mar 8, 2008
    Messages:
    471
    Likes Received:
    147
    I need some help with htaccess. I tried to code a htaccess that will that will allow search engine visitors and bots, and redirect everyone else. My problem is when the visitor is a bot or not from the search engines, the site seems be caught in a loop

    Basically what I want htaccess to do:

    -htaccess sees the referrer is from a search engine and the visitor will be redirected to a linkA.

    -If visitor is not from a search engine, the htaccess checks if the visitor is a bot, if so the bot will be able to crawl the site.

    - if visitor do not have a search engine referrer and is not a bot, the visitor will be redirected to linkB.

    Here is what I wrote in My htaccess

    Code:
    RewriteBase /
    #
    #First redirect any visitors from search engines to url
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} ^.*yahoo.*$ [OR]
    RewriteCond %{HTTP_REFERER} ^.*google.*$ [OR]
    RewriteCond %{HTTP_REFERER} ^.*msn.*$ [OR]
    RewriteCond %{HTTP_REFERER} ^.*live.*$ [OR]
    RewriteCond %{HTTP_REFERER} ^.*ask.*$ [OR]
    RewriteCond %{HTTP_REFERER} ^.*aol.*$
    RewriteRule ^.*$ http://www.linkA.com [R,L]
    #
    #Now allow specific bots, and redirect everyone else
    RewriteCond %{HTTP_USER_AGENT} !^googlebot [OR]
    RewriteCond %{HTTP_USER_AGENT} !^slurp [OR]
    RewriteCond %{HTTP_USER_AGENT} !^Yahoo-MMCrawler [OR]
    RewriteCond %{HTTP_USER_AGENT} !^msnbot [OR]
    RewriteCond %{HTTP_USER_AGENT} !^SandCrawler [OR]
    RewriteCond %{HTTP_USER_AGENT} !^Teoma [OR]
    RewriteCond %{HTTP_USER_AGENT} !^Jeeves
    RewriteRule ^.*$ http://www.linkB.com [R,L]
    
     
    Last edited: Feb 9, 2009
  2. cyklotrial

    cyklotrial Regular Member

    Joined:
    Oct 13, 2008
    Messages:
    248
    Likes Received:
    82
    Location:
    Wonderland
    written from the memory - I didn't test it

    Code:
    RewriteBase /
    RewriteEngine on
    
    RewriteCond %{HTTP_REFERER} (yahoo) [NC,OR]
    RewriteCond %{HTTP_REFERER} (google) [NC,OR]
    RewriteCond %{HTTP_REFERER} (msn) [NC,OR]
    RewriteCond %{HTTP_REFERER} (live) [NC,OR]
    RewriteCond %{HTTP_REFERER} (yahoo) [NC,OR]
    RewriteCond %{HTTP_REFERER} (ask) [NC,OR]
    RewriteCond %{HTTP_REFERER} (aol) [NC]
    RewriteRule ^.*$ http://www.linkA.com [R,L]
    
    RewriteCond %{HTTP_USER_AGENT} !^googlebot [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^slurp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^Yahoo-MMCrawler [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^msnbot [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^SandCrawler [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^Teoma [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^Jeeves [NC]
    RewriteRule ^.*$ http://www.linkB.com [R,L]
     
  3. blazen

    blazen Regular Member

    Joined:
    Mar 8, 2008
    Messages:
    471
    Likes Received:
    147
    Cyklotrial, your htaccess looks similar to mine except the [NC] part. I didn't try your htaccess yet, but can you explain what NC is for? (I'm still pretty new to writing htaccess)

    EDIT: I think I understand that it is for case insensitive
     
    Last edited: Feb 10, 2009