1

基本的にルックアップテーブルを使用してURLがどうなるかを示すルーターフレームワークを実装しました。

たとえば、domain.com?id = 26のような醜いものがあった元のURLは、domain.com /words-that-look-niceになります。

しかし、私の質問は次のとおりです。すべてのページが検索されてリダイレクトされる場合、実際のHTMLマークアップはmy_page.phpという1つのファイルに含まれます-正しいですか?唯一の違いは、my_page.phpが検索対象のアイテムに応じてユーザーに異なって表示されることです、正しいですか?

もしそうなら、どうすればこのURLの「マスキング」を行うことができますか?

つまり、URLがどうなるかがわかったら、ページmy_page.phpに、検索された特定のページのすべてのデータを提供させるにはどうすればよいですか?

質問が複雑な場合はありがとうございます:)

4

1 に答える 1

2

最初に行う必要があるのは、「書き換え」を使用できるかどうかを確認することです。「mod_rewrite」を使用してApacheを実行している場合は、それを使用できます。

  1. ルートディレクトリに.htaccessファイルを作成します...domain.com/。そこに以下を入れてください:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 
  1. これで、の形式のすべての要求が"domain.com/this-is-my-page"「domain.com/index.php?r=this-is-my-page」の形式に書き換えられます。

  2. データベース内のrの値を検索するようにルーターを設定します。テーブルは次のようになります。ID| URL 55 | this-is-my-page 56 | this-is-my-next-page

  3. したがって、のようなものを実行します"SELECT ID FROM router WHERE URL=LOWER('{$r}')"。もちろん、SQLインジェクション攻撃をチェックすることを忘れないでください。

  4. これでIDが取得され、現在と同じようにページにデータを入力できます。

お役に立てば幸いです:)

于 2011-02-11T01:47:32.287 に答える