私は、顧客ごとに独立して機能する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]