web-dev-qa-db-ja.com

そのファイルが特定のサイト用にカスタマイズされていない限り、中央の場所から来るようにファイルを構成する

サーバーにユーザーAがいます。このユーザーには、一連の作業スクリプト(html + js + css +その他すべて)があります。
ユーザーB- [必要な限り]もあります。まったく同じファイルを使用するようにしたいのですが、butファイル自体がある場合はそれを使用します。サーバーレベルのマルチユーザーfile_exists()のように。

ユーザーBが/templates/index.htmlを持っているとすると、そのテンプレート(ユーザーBの)を除き、サイトがユーザーAのすべてのファイルで使用するようにします。エイリアスのように、ファイルが存在するまで。

誰も私を正しい方向に向けることができますか、私はサーバーレベルで働くことができます、私は単に用語を知らない、私が探しているものがわからない。


USER A                  USER B                      USER C
.htaccess                                           
index.php                                           
/templates/             /templates/                 /templates/
    - index.html                                    
    - header.html           - header.html           
    - footer.html                                   - footer.html

ユーザーBは、header.htmlを除き、ユーザーAのファイルのallを使用します
USER Cは、footer.htmlを除き、USER Aのファイルのallを使用します

説明する簡単な方法:ユーザーのB&Cは、いくつかの既存のファイルを除き、Aのエイリアスです。きれいなURLは機能し続ける必要があります。

1
Martijn

Apache Webサーバーを使用している場合は、次を使用できます。

# Turn on redirection module in case not already on
RewriteEngine On
# If requested file doesn't exist
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
# and the requested file is /scripts/script.php
RewriteCond %{REQUEST_FILENAME} ="/scripts/script.php"
# then use the script made available to all users
RewriteRule ^.*$ /scripts-global/script.php [L]

Apache v2.2から-fテスト(ファイルが存在するかどうかを確認する)は相対パスで機能しないため、%{DOCUMENT_ROOT}を置き換える場合は、 llを/ home/users/martijnなどのフルパスに置き換える必要があります。

1
richhallstoke