-2

8 か国で同じサイトを実行する Web コードがあります。ただし、この情報をユーザーに開示することはありません。テーマの処理方法は次のとおりです。/httpdocs/themes/www.sitename.com/default/ および htaccess では、www.sitename.com の部分を RewriteRule でスキップし、ユーザーのブラウザの場所には /httpdocs/themes/default しか表示されません。

これは問題なく機能していますが、サイトを追加するほど、開発サーバーとローカル開発 PC でこの環境を作成する必要があるときに問題が生じます。

この住所の場所の問題をどのように処理しますか。htaccess 行を削除してすべてを構成ファイルに入れる方が簡単ですが、達成した特定の技巧が失われます。

詳細情報

htaccess ルールは次のとおりです。 RewriteRule ^resources/image/(.*)$ resources/%{HTTP_HOST}/upload/image/$1 [L]

ローカルでは、フォルダー /resources/localsite/image になりますが、ライブ /resources/www.sitename.com/image では。

したがって、htacess を介して処理するため、Local ではルールは機能しません。私が話している巧妙さは、ユーザー/管理者が、これらのサイトを 1 つのコードで見事に処理していることを知らないということです。

Vhost にコマンドを書き込もうとしています

このコマンドは、Plesk の vhost.conf create に書きました。

<If "%{SERVER_NAME} = 'www.sitename.com'">
       SetEnv ThemePath www.sitename.com
</If>

しかし、エラーが発生しました。

Starting httpd: Syntax error on line 23 of vhost.conf: Invalid command <If,
perhaps misspelled or defined by a module not included in the  server configuration
4

1 に答える 1

1

Apache vhost 構成に以下を入れる必要があります。これを .htaccess ファイルでテストしたことはありませんが、これが機能しない明確な理由は思いつきません:

SetEnvIf HOST ^www.somesite.com$ NONWWWURL=1 
SetEnvIf HOST ^somesite.com$ NONWWWURL=0

私はこれがあなたが探しているものを達成するはずだと信じています。

于 2013-04-17T18:01:21.193 に答える