0

私はいくつかの検索を行いましたが、PHP の経験があまりないため、探している正しい用語/単語がわかりません。しかし、私は自分がやりたいことについて良い考えを持っています。

  1. 多くの画像を含む Web サイトがあり、各画像にはデータベース エントリ (MySQL) があります。
  2. データベースの値に基づいて、各画像に独自のランディング ページが必要です。( TitleCategoryTagsなど...)
  3. サーバー上で画像ごとに個別の .php ファイルを作成したくありません。(例: pinkflowers.phpredroses.phpなど...)
  4. ユーザーがアクセスする URL (変数) に基づいて、すべての画像の Web ページを出力する 1 つの PHP テンプレート ファイルが必要です。

したがって、誰かが「mysite.com/pinkflowers.php」にアクセスすると、ページはpinkflowers私のデータベースからの変数で出力されるはずです。

ただし、ファイルpinkflowers.phpは実際には存在せず、存在するだけtemplate.phpで、データベース内のすべての画像の「青写真」になります。

  1. .phpブラウザの URL から を削除したいと思います。

    "mysite.com/pinkflowers.php" => "mysite.com/pinkflowers"

    既存のページ(以下)でこれを行うコードが既にあります。これらの「架空の」ページでも機能するかどうかはわかりません。

    (.htaccess)    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    
  2. ユーザーが関連するデータベース エントリがないページ (例: "mysite.com/430jfif0ij") にアクセスしようとすると、ホームページにリダイレクトされます。

誰かが私にすべての答えをくれるとは思っていませんが、少なくともそのようなテンプレートの作成を開始するための正しい方向に私を導いてください. ありがとう!

4

2 に答える 2

2

最終的には自分の質問を解決することができましたが、その間に回答はありませんでした。

私はここでこのチュートリアルに従いました:http: //net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

私の.htaccess封じ込め:

RewriteEngine on    
Options +FollowSymLinks

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^category1/(.*)$ ./template.php?image=$1
RewriteRule ^category2/(.*)$ ./template.php?image=$1
RewriteRule ^category3/(.*)$ ./template.php?image=$1
etc...

category#-私の画像が分類される「フォルダ」であること。

template.phpURLから変数を抽出するためにこれを行いました:

$result = mysql_query('SELECT * FROM image_list WHERE image_name="' . mysql_real_escape_string($_GET['image']) . '"');

redirectホームページの訪問者が無効なURL/IDを入力した場合、私はこれを使用しました。

if (mysql_num_rows($result)==0) {
echo "<script>window.location = 'http://mysite.com/'</script>";
}

したがって、これらすべての方法の組み合わせは、私が探していたものを正確に達成しました。

于 2012-09-04T13:08:03.563 に答える
0

.htaccess を次のようにします。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ template.php/$1

次に ( on template.php) を使用$_SERVER["path_info"]して、ユーザーが入力したパス (つまり/pinkflowers) を特定し、それに応じてデータベースにクエリを実行します。

私が気に入っ$_SERVER["path_info"]ている理由は、GET 変数スペースを使用 (または汚染) しないためです。

于 2012-08-28T15:18:41.863 に答える