web-dev-qa-db-ja.com

URL書き換えを実装するための最も迅速で安価な方法は何ですか?

別の質問 -に関連して、できるだけ早くURL書き換えを実装する必要がある場合、これをスピードアップできる使用済みまたは既知の方法は何ですか?

2
Mark Henderson

8時間以内に数百の製品を処理することができました。シナリオは次のとおりです。

我々は持っていた:

  • 意味のないパラメーターで満たされた犬のugいURL
  • 社内開発者
  • SQLデータベースとスキーマへのフルアクセス
  • IIS6/ ISAPI Rewrite (ただし、他の人のためにこれを行うこともできました)

オプション1

製品テーブルは次のようになりました。

ID | Product Name | Description | etc
-------------------------------------
001|Product 1     | This is...  | etc
002|Product 1     | This is...  | etc
003|Product 1     | This is...  | etc

そこで、productsテーブルをループし、httpd.iniファイル(ISAPI Rewriteの.htaccessバージョン)にエントリを作成する小さなバッチプログラムを作成しました。このような数百のエントリ:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] *免責事項をご覧ください

当社の製品はあまり頻繁に変更されないため、何かを追加するたびに手動で再実行します。エレガントではありませんが、これはそれを迅速/安価にすることです。

次に、製品へのリンクが印刷されるすべての場所で、リンクが完全なURLに出力されることを確認しました。

これには合計で約8時間かかりました。

オプション2

次のような単一の汎用URL書き換えルール:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] *免責事項をご覧ください

つまり、次のように書くことができます。

/products/my/thing/whatever/the/hell/i/want/123

そして、正しいURLに書き換えられます。次に、URLリンクの出力を変更するだけです。

*免責事項:私の正規表現スキルは非常に錆びており、その場でそれらを作り上げました。彼らは間違っているかもしれません。実際の正規表現に対するマイレージは異なる場合がありますが、概念は依然として有効です。

2
Mark Henderson