-2

我们有一个在 8 个不同国家运行相同站点的网络代码。但是,我们不会向用户披露这些信息。以下是我们处理主题的方式。/httpdocs/themes/www.sitename.com/default/ 和在 htaccess 中,我们跳过带有 RewriteRule 的 www.sitename.com 部分,用户只能在他的浏览器位置看到 /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。我所说的技巧是用户/管理员不知道我们在一个代码中很好地处理了这些站点。

尝试在 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 回答