0

J'ai une longue URL d'un site de l'héritage que je dois 301, par exemple: domain.com/web/vehicle/655520/2007-Hummer-H2---? sort_by = année & args = All_years - All_makes - All_models - All_body_types - All_vehicles.htaccess - besoin de 301 une URL avec des caractères spéciaux

Je dois redirigez (et beaucoup d'autres semblables urls) à une nouvelle page sur un nouveau site Web, par exemple la page: domain.com /hummer.php

Comment dépouillez-vous les caractères spéciaux (ex. ---?) et tout le reste de l'URL afin que je puisse utiliser avec succès un 301?

Répondre

0

Vous ne pouvez pas quoi que ce soit "strip" avec mod_rewrite.
Vous pouvez uniquement créer des références à partir de parties d'une chaîne et les utiliser pour créer la nouvelle URL.

Comment vous pouvez le faire dépend de ce que vous aimez URL pour construire sur l'URL d'origine.

0

Pourquoi avez-vous besoin? À moins que vous ne prévoyiez de coder une longue liste de redirections dans votre fichier .htaccess, vous devriez faire toutes vos redirections en PHP.

Dans l'exemple d'URL que vous avez donné, je suppose que tous les éléments ont un identifiant unique qui est lié à l'URL déjà. Dans ce cas, vous pouvez créer une carte dans votre base de données indiquant que l'URL "appropriée" pour l'article 655520 est hummer.php. Vous pouvez l'utiliser pour effectuer une redirection depuis PHP.

Voici un exemple de ce que vous pouvez faire. Je fais l'hypothèse que vous avez déjà un fichier .htaccess qui traduit l'URL en GET. Quelque chose comme RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

//determine if you were passed a "legacy URL" (not shown) 
if (legacyURL) { 
    $urlComponents = $explode("/", $_GET['request']); 
    $url = getItemUrl($components[2]); 
    header("Location: " . $url,TRUE,301); 
    exit(); 
} 
Questions connexes