0

私は301に必要なレガシーウェブサイトの長いURLを持っています。例:domain.com/web/vehicle/655520/2007-Hummer-H2---? sort_by = &年引数= All_years - All_makes - All_models - All_body_types - All_vehicles.htaccess - 特殊文字を含むURLを301にする必要があります

私は再設計されたウェブサイトに新しいページに、この(と、より多くの同様のURL)をリダイレクトする必要が

、ページの例:domain.com /hummer.php

私は正常に301を使用できるように、URLから特殊文字(例:?)とその他すべてを削除します。

答えて

0

mod_rewriteで何も「削除」することはできません。
文字列の一部からのみ参照を作成し、新しいURLを作成するために使用することができます。

どのようにすることができるかは、元のURLから構築したいURLに依存します。

0

なぜ必要なのですか? .htaccessファイルに長い、長いリストのリダイレクトを記述することを計画しているのでなければ、PHPですべてのリダイレクトを実行する必要があります。

あなたが与えたURLの例から、私はすべての項目がすでにURLに結び付けられている一意のIDを持っていると仮定します。その場合、アイテム655520の「適切な」URLがhummer.phpであることを示すマップをデータベースに作成することができます。これを使ってPHPからリダイレクトを実行できます。

これを行う方法の例を次に示します。私はあなたがすでにURLをGETに変換する.htaccessファイルを持っていると仮定しています。何かのように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(); 
} 
関連する問題