0

単純なデータベースを作成しているときに問題が発生しました。助けていただければ幸いです;)。

問題 :

まったく問題のないオファー(ホテル、休日など)を含むデータベースを作成する必要があります。私たちがやりたいのは、作成者自身が選択できる単一のURLを使用して各エントリをカスタマイズできるようにすることです。たとえば、すべてのオファーが一覧表示されている概要ページ(overview.php)があります。次に、たとえばID 50を継承する最初のオファー「Mallorca」をクリックします。動的URLは、たとえば「detail.php?id = 50」のようになりますが、私の個々のフィールドからそれらを書き直したいと思います。次のようなエントリを作成するときに作成者が指定したデータベース:

Offer Name
Offer Date
Offer Price
URL (which can be anything, also blabla.htm)

次に、URLフィールドを使用して、オファーごとにカスタムの個別URLを作成する必要があります。たとえば、detail.php?id=50はmydomain.com/offers/mallorca.htmになります。

mod_rewriteを参照できることは知っていますが、それを組み合わせてデータベースのフィールドを使用する方法がわかりません。

何かアドバイス?

4

2 に答える 2

1

次のように書き直すことができます。

RewriteRule ^/offers/(*.)$ detail.php?url=$1

detail.php次に、ファイル内のURLと指定されたURLGETパラメーターでオファーを見つける必要があります。

于 2013-01-09T10:20:33.600 に答える
1

あなたが考えたり、跳ね返ったりするためのアイデア:

  1. 作成者にフリーハンドを任せて独自のURLを入力した場合、具体的なオファーのURL部分が実際に一意になるまでユーザーにデータを保存させずに、URLの一意性の制御を実装する必要があります。
  2. より簡単な方法は、次のようなURLのみを使用することですmydomain.com/offers/50/。実装にかかる時間は短くなりますが、見た目はさらに良くなります。
  3. 最後に、.htaccessに書き換えルールを作成する必要がありますが、結果は(ポイント1またはポイント2から)どのように進むかによって異なります。
    • 1:RewriteRule ^/offers/(.*)$ detail.php?url=$1 [L, QSA]
    • 2:RewriteRule ^/offers/(.*)/$ detail.php?id=$1 [L, QSA]

最初のオプション(希望するオプション)を使用する場合は、提供されたURL部分でオファーを検索する必要があり、2番目のオプションではIDで検索します。

お役に立てれば。

于 2013-01-09T10:25:17.863 に答える