2010-01-10 5 views
1

J'essaie de faire seo pour rechercher des requêtes. J'ai une forme comme ceci:

<form action="index.php?<?=$_GET['search-input01']?>'" method="get"> 
    <p class="nom t-center"> 
    <label for="search-input01">All:</label> 
    <input type="text" size="75" name="q" id="search-input01" /> 
    <input type="image" src="design/search-button.gif" class="search-submit" /> 
    </p> 
</form> 

quand u ne recherchent /index.php?q=SEARCHTERMHERE&x=0&y=0 dans la barre d'adresse. Je veux faire ceci: /search-SEARCHTERMHERE

comment faire?

Répondre

3

Essayez quelque chose comme ceci:

if (isset($_GET['q'])) { 
    header('Location: http://example.com/search-'.rawurlencode($_GET['q'])); 
    exit; 
} 

Cela va rediriger une requête qui est la requête d'URL contient un argument q comme dans votre /index.php?q=SEARCHTERMHERE&x=0&y=0-/search-SEARCHTERMHERE.


Modifier Vous pouvez également essayer avec mod_rewrite seulement:

RewriteCond %{THE_REQUEST} ^GET\ /index\.php\? 
RewriteCond %{QUERY_STRING} ^(([^&]*&+)*)q=([^&]*)&*(.*) 
RewriteRule ^index\.php$ /search-%3?%1%4 [L,R] 

RewriteRule ^search-(.+) index.php?q=$1 [L,QSA] 

La première règle est de rediriger la demande externe et le second est la réécriture interne.

+1

Merci pour votre réponse. votre code redirige avec succès mais ne fonctionne pas. mozilla dit mauvaise redirection (ne jamais charger la page sur ie) btw j'ai changé mon post. oublier "www" c'était le terme de recherche. je veux /index.php?q=SEARCHTERMHERE&x=0&y=0 à/search-SEARCHTERMHERE –

+0

cela n'a pas fonctionné mais j'ai changé "q" en "search-input01" dans le script php $ _get. cela fonctionne mais écrit comme search-TERM? x = 0 & y = 0. et les pages ne fonctionnent pas maintenant. RewriteRule search - (. *) - (. *) $ /index.php?page=$2&q=$1 RewriteRule search - (. *) - (. *) $ /index.php?type=$2&q=$1 RewriteRule search - (. *) - (. *) - (. *) $ /index.php?page=$3&type=$2&q=$1 il existe d'autres règles. Si vous avez MSN ajouter moi [email protected] –

2

Si vous voulez faire le contraire de ce Gumbo a suggéré, à savoir rediriger /search-SEARCHTERM-/index.php?q=SEARCHTERM&x=0&y=0, entrez quelque chose comme ceci dans votre fichier .htaccess:

RewriteEngine On 
RewriteRule ^search-([-_A-Za-z0-9]+)$ /index.php?q=$1&x=0&y=0 [L] 
+0

merci pour la mise à jour. J'ai essayé RewriteRule^recherche - ([-_ A-Za-z0-9] +) $ /index.php?q=$1&x=0&y=0 [L] mais cela n'a pas fonctionné –

+0

pouvez-vous donner un exemple d'un terme de recherche typique? – Tomba

+0

um. ex terme de recherche: "windows" lorsque vous faites une recherche "windows" dans "all" section page va à "index.php? q = windows" dans la section "applications" va à "index.php? type = app & q = windows" –