在一个代码上运行多个站点

时间:2013-04-16 09:13:57

标签: php .htaccess

我们有一个在8个不同国家/地区运行相同网站的网络摄像头。 但是,我们不会将此信息透露给用户。 这是我们处理主题的方式。 /httpdocs/themes/www.sitename.com/default/ 在htaccess中,我们使用RewriteRule跳过www.sitename.com部分,用户只能看到, / httpdocs / themes / default在他的浏览器位置。

这工作正常,但我们添加的网站越多,当我们需要在Dev服务器和本地开发PC上创建此环境时,它就会成为问题。

我们如何处理此地址位置问题。它更容易删除htaccess行并将所有内容放在配置文件中,但它剥夺了我们已经实现的某种技巧。

更多信息

这是htaccess规则。 RewriteRule ^resources/image/(.*)$ resources/%{HTTP_HOST}/upload/image/$1 [L]

现在在本地,它在文件夹/ resources / localsite / image上,而在live /resources/www.sitename.com/image上。

因为我们通过htacess处理,所以规则不适用于Local。我正在谈论的技巧是用户/管理员不知道我们在一个代码中处理这些网站。

尝试在Vhost中编写命令

在Plesk下的vhost.conf中创建此命令。

<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

1 个答案:

答案 0 :(得分:1)

您需要在Apache vhost配置中添加以下内容。我没有在.htaccess文件中测试过这个,但我想不出任何明显的原因导致这种情况不起作用:

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

我相信这应该能达到你想要的效果。