views:

561

answers:

3

hello, i have this code

<form action="index.php" method="get" class="search-form"><input type="text" size="35" name="search" class="searchBox" value="" /><input type="submit" value="Start Searching!" /></form>

and actually i convert the url with javascript

<script type="text/javascript">
$(document).ready(function() {
    $('.search-form').submit(function() {

        var value = $('.search-form input:text').val();
        value = value = value.replace(/\W/,''); // replace
        window.location.href = value + "-keyword" + ".html";
     return false;
    });
});

</script>

is there a method to convert the url seo-friendly without javascript? maybe with php?

A: 

This is what I would do too, because if anyone links to either URL the link juice will always flow down in the SEO Url eventually. You could use an onclick to take the user to an SEO URL in javascript, but google wont follow it.

One thing you could do is to store those searches in a db and then have them as "related links" (the seo versions) linked to from each page on your site, this way they will get spidered.

Ke
+1  A: 

I am for the following technique because

  1. it's a guessable uri to search "via the address bar"
  2. it's always a good thing to redirect while responding to a POST-request, to avoid akward "want to send POST information again?"-alerts when the user tries to go back via the browser's back button
  3. it's simply easier to see what I searched for if the url is clean of hidden values, value of submit-button etc

Here goes:

<?php
//receiving page
if(isset($_GET['name_of_submit'], $_GET['search_phrase'])) {
    header("Location: /address_to_this_script/".$_GET['search_phrase']);
    die;
}
if(isset($_GET['search_phrase'])) {
   // handle search and validation here, don't forget to escape it!
}
chelmertz
A: 

The best way is to remove special characters and replace it by the page, category and section names. Regards

Christian