0

私の Web サイトには、A、B、C の 3 種類のユーザーがいます。これらのユーザーがアクセスできる Web ページはほとんど異なりますが、重複するものはほとんどありません。そして、次のようにディレクトリを作成しました。お気に入り。

Root
    A
        A1
        A2
        A3
        K1
        K2
    B
        B1
        B2
        K1
    C
        C1
        C2
        C3
        K1
        K2

したがって、ここではファイル K1 と K2 に共通の名前が付いていますが、内容は似ていません。A タイプのユーザーがログインすると、domain.com/A/A1/ domain.com/A/K2/B タイプのユーザーが閲覧できますdomain.com/B/B1

私が欲しいのは、Aタイプのユーザーがログインすると、その間にetcdomain.com/A1/ domain.com/K1を使用せずに、 etcをブラウズすることA Bです。ファイルが明確にならないようにするために、すべてのファイルをまとめることはできないため、上記と同じディレクトリ構成にそれらを保持する必要があります。では、どうすればよいでしょうか?何をすべきか?

mod_rewrite は仮想ディレクトリの作成に役立ちますが、表示方法を選択するために PHP セッション変数とデータベース クエリが必要であり、ユーザーがアクセスできるようにしておく必要があるため、この場合は役に立ちません。

よく分からないかもしれませんので、質問を理解した上で質問してください。ありがとう。

4

1 に答える 1

1

2 つのことを行う必要があります: 要求された URI を取得し、ユーザー タイプを取得します。次に、どのディレクトリを提供するかがわかります。htaccess と mod_rewrite は、データベースにアクセスできないため、2 番目のことを行うには不十分です。

あなたができることは、以下を使用して、すべてをある種のphpコントローラーにルーティングすることです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /user_type.php?request=$1 [L]

次にuser_type.php、変数から最初のことを認識しrequest $_GET、ユーザー タイプをフェッチして 2 番目のことを実行し、ユーザー タイプに基づいてリクエストを返します。何かのようなもの:

$file_to_serve = $_GET['request'];

if($user_type == 'A')
    $file_to_serve = 'A/' . $file_to_serve;
于 2013-09-05T19:27:54.090 に答える