0

私は、顧客ごとに独立して機能するPHPWebショッププロジェクトを開発しました。つまり、各顧客は独自のWebショップソースファイルphpをインストールします。

これは多くのWebサイトを維持するためのキラーであることがわかったので、Webショップのソースファイルをサーバーの共通の場所に配置し、Apacheサーバーにエイリアスを作成してすべてのwww顧客がアクセスできるようにすることにしました。

次に、各顧客は、独自のwwwフォルダーに独自の構成ファイル、ログフォルダー、テンプレートフォルダーなどを持っています。

私はなんとか上記のすべてのことをすることができました。しかし、私の問題はURLです。

URLは次のようになります:http: //www.exampleshop.com/webshop/v1/index.php

次のように見えるように、URLでwebshop /v1を非表示にする必要があります:http: //www.exampleshop.com/index.php

url rewrite modで遊んだのですが、exampleshop.comのルートで正しくないファイルを検索するため、index.phpが存在しないと表示され続けます。これは/ webshop/v1にあります。

何か案は?代替案。

誰かが助けてくれることを願っています:-)


私は次のことで上記を行うことができました:-)

RewriteEngine On
#for admin pages redirection
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/admin/index\.php$ /webshop/v1/admin/$1 [L]

#for webshop pages redirection
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webshop/v1/$1 [L]

上記は機能しますが、唯一の問題は、インデックスファイルを認識しないことです。ページを指定せずにURLに移動すると、インデックスファイルが機能しないため機能しません。動作させるには、webshop.com/index.phpなどの完全なURLを入力する必要があります。

拡張機能を削除する方法もあります:-)

URLにindex.phpを指定しなくても機能するソリューション

#if no file specified, forward to index
RewriteRule ^$   webshop/v1/   [L]
#if no file specified, forward to index
RewriteRule ^admin/$   webshop/v1/admin/   [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webshop/v1/$1 [L]
4

2 に答える 2

0

VirtualHostまたはAliasディレクティブで修正する必要があります。

于 2012-09-17T15:17:52.097 に答える
0

ホストに基づいてアプリケーションレベルでリクエストをルーティングします。

サーバーにファイルがインストールされていて、このサーバーを指すさまざまなドメイン(customer1.com、customer2.com、customer3.comなど)があるとします。次に、index.phpファイル内で、ファイルがアクセスされているドメインを検出し、切り替えます。必要に応じて構成設定。

設定をドメインにマップするデータベーステーブルを作成できるため、ファイルベースの構成を使用したくない場合は、データベースクエリを実行して設定を取得できます。

アップデート

その場合は、.htaccessルールが必要です。あなたのルート.htaccessでこれをしてください:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$   webshop/v1/   [L]
    RewriteRule (.*) webshop/v1/$1 [L]
</IfModule>

そしてこれはあなたの/webshop/ v1 /ディレクトリにあります:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # for admin pages redirection
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin/(.*)$ /webshop/v1/admin/$1 [L]

    # for webshop pages redirection
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /webshop/v1/$1 [L]
</IfModule>
于 2012-09-17T15:18:18.377 に答える