• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 247
  • Last Modified:

How to put SEO Friendly Redirection on same script?

I am having a single script "index.php" which reacts differently as per querystrings. Lets say: If some one browse my site with this url:

http://www.mysite.com/  or http://www.mysite.com/index.php  It opens the home page of website.


When someone put url like this: http://www.mysite.com/?category=sports It open different section of the same page. (It usually show a list of items , which matched with this category instead of actual home page)

So the same script index.php reacts differnetly depend upon the query string passed to it.

Now the problem is, I want to separate this fe=uncinality of this script to a new script because the index.php is become too heavy to load and take lot of time to even show the home page.

I have already lot of traffic on my site and I dont want to loose any single incoming link to my site. My site is already crawled by google.

I want to put such re-direction on the script so that it will be a SEO friendly. I know if it will be the case of shifting script, I can put 301 redirect and do the job. But the problem is I also want the index.php will react as it is and will show home page always. So I made two scripts. One is index.php itself and other one I created to show the list of categories like this: http://www.mysite.com/browse/?category=sports.

So I want to redirect the part of the index script; this url: http://www.mysite.com/?category=sports  to http://www.mysite.com/browse/?category=sports

How can I do it, so that it will be SEO friendly and wont effect index.php anyway.

  • 2
  • 2
1 Solution
proteam4Author Commented:
In index.php to redirect old urls to new urls, I am doing like this in code below. Please let me know if it is the correct way of doing this?

    $urlQueryString = $_SERVER['QUERY_STRING'];
    if ($urlQueryString){
        header( "HTTP/1.1 301 Moved Permanently" );
        header( "Location: http://" . $_SERVER['HTTP_HOST'] . '/browse/' . $urlQueryString ); 

Open in new window

You could do so by using mod_rewrite with an .htaccess file.

Put this in a .htaccess file in the root of your website.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} category=(.*)
RewriteRule ^index(.*) /browse/?category=%1
proteam4Author Commented:
Thanks for the solution. I can do this but I want to know the following queris though : before implementing the solution:

1) Which one will be the faster? Code or htaccess ?

2) Will it be SEO Friendly? So the existing index.ph wont get affected with this redirection and works normally on google or any other search engine?

It is SEO friendly, you can even add a [r=301] to the last line of the rewrite rule to permanently update the search engine links. As to what is faster, i'd say the htaccess is because it gets interpreted before the code is actually processed. If pages are loading rather slowly etc, you might want to enable gzip compression on the server side to speed up deliver of the content.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now