我为我的网站创建了多个子域名...
主要网站:
example.com
子域:
name1.example.com
name2.example.com
name3.example.com
name4.example.com
子域将使用与主站点相同的php和html后端。唯一的区别是CSS。
我在考虑可能只需要在每个子域的文档中需要我需要的文件,这样我就可以全面快速地进行更新。
我不确定这是处理此问题的最佳方法,但完全克隆网站似乎是多余的。有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
我有一个java背景,但我确信在php中有类似的东西,你可以将每个子域的所有css文件放在一个单独的文件中。然后在您的PHP代码中,检查请求的URL并包含包含该子域的CSS的文件
答案 1 :(得分:0)
还有更好的方法,是的。这就是我接近这种情况的方式。
假设您的前端有这个文件树;
- /
- [all-backend related files]
- sites/
|- default/
|- pages/
|- index/
| - index.css
|- name1/
|- pages/
|- index/
| - index.css
|- name2/
| - pages/
| - index/
| - index.css
您的PHP看起来就像;
function isSubdomain() {
// http://stackoverflow.com/a/15852997/3000179
$host = $_SERVER['HTTP_HOST'];
$host = explode('.',$host);
$host = (is_array($host)?$host[0]:$host);
return $host;
}
//Assume we are on the site1.domain.com/index
//Assume we are on your template file, and we're at the
//<head> tags within your page
if( file_exists(__DIR__ .'/'. isSubdomain() .'/pages/index/index.css') ) {
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"". __DIR__ ."/". isSubdomain() ."/pages/index/index.css\">";
} else {
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"". __DIR__ ."/default/pages/index/index.css\">";
}
然后,将所有子域指向DocumentRoot
或/
,并让PHP加载相关的CSS文件。