1

みなさん、良い一日を!

クライアントは、ある CMS から別の CMS に e ショップを切り替えます。古い製品とカテゴリのリンクをすべて新しいリンクにリダイレクトしたいと考えています。古いリンクと新しいリンクの例を次に示します。

古いリンク構造:

カテゴリ:http://www.myshop.com/index.php?categoryID=55

製品の場合:http://www.myshop.com/index.php?productID=777

新しいリンク構造:

カテゴリ:http://www.myshop.com/categoryName/

            `http://www.myshop.com/categoryName/subcategoryName/`

製品の場合:http://www.myshop.com/categoryName/productName/

          `http://www.myshop.com/categoryName/subcategoryName/productName/`

合計約2000リンク。

私の知る限り、ターゲット CMS は Virtuemart です。Web サーバーは apache です。htaccess と php がサポートされています。クライアントは、可能であれば htaccess を使用したくないと言います。彼らは、すべてのリンクをリダイレクトするために php スクリプトを使用することを好みます。

これほど複雑な URL リダイレクトを行ったことはありません。そのためのphpファイルを作成する必要があると思います。しかし、その中でどのアルゴリズムを使用し、どこに配置するかはわかりません。前もって感謝します!

4

2 に答える 2

3

.htaccessまたはmod_rewrite、データベースにクエリを実行して ID を名前に変換するために PHP コードが必要になるため、あまり役に立ちません。

疑似コード: の上に配置するにはindex.php:

 1:が空でないかどうかを確認します2:$_GET['categoryID']空でない場合は、提供されたデータベースにクエリを実行して取得します3:このコードを
 categoryIDcategoryName
 index.php

if (!empty($_GET['categoryID']) {
    // place sanitization etc if needed
    $categoryName = getFromDB($_GET['categoryID']);
    // handle no categoryName found here
    header('Location: /' . $categoryName, TRUE, 301);
    exit;
}

 PS:についても同様の処理を行いproductIDます。

于 2013-09-12T14:18:26.090 に答える