<p>As long as your sites are hosted on the same server, you can easily share templates and plugins between them by defining the appropriate <a href="https://craftcms.com/docs/php-constants#path-constants" rel="nofollow">path constants</a> in the <code>index.php</code> files for your sites:</p>

<pre><code>define('CRAFT_PLUGINS_PATH', '/absolute/path/to/your/plugins/folder');
define('CRAFT_TEMPLATES_PATH', '/absolute/path/to/your/templates/folder');
</code></pre>

<p>As for your resources (i.e. CSS and JavaScript files), <a href="https://en.wikipedia.org/wiki/Symbolic_link" rel="nofollow">symbolic linking</a> is an option. However, I would recommend following Tom Bauer's suggestion in his answer – pick one domain and serve all assets from that domain's public folder, or even better: host the resources on a <a href="https://www.maxcdn.com/" rel="nofollow">CDN</a>.</p>

CC BY-SA 3.0
2016-06-27T10:17:20.127Z
2016-06-27T10:22:34.580Z
2016-06-27T10:22:34.580Z
Mats Mikkel Rummelhoff
<p>You could make use of symbolic links. This works if your sites are:</p>

<ul>
<li>on the same system </li>
<li>your system is running on a Linux server environment</li>
<li>you have console access (ex. SSH) </li>
</ul>

<p>With symbolic links you can easily "mirroring" folders like css/js and templates, plugins, etc.. For the assets it's maybe better to use only one url and pointing to this over all domains. This avoiding dublicated content in Google&amp;Co..</p>

CC BY-SA 3.0
2016-06-27T05:02:34.013Z
2016-06-27T05:02:34.013Z
Tom Bauer
<p>You could use a deployment solution like <a href="http://beanstalkapp.com/" rel="nofollow">Beanstalk</a> to update both your template folders with one push. I would think you could use the same assets folder fairly easily as long as the folder lives above the "craft" folder for both installations.</p>

CC BY-SA 3.0
2016-05-28T07:19:04.383Z
Interesting, thanks! Never thought of that route. I'm exploring Multi-Environment options first to see what's actually possible with Craft but can always fall back to this.
JonnyT
CC BY-SA 3.0
2016-05-27T19:25:17.033Z
2016-05-27T19:25:17.033Z
Ethan Thompson
<p>I've seen many similar questions (<a href="https://craftcms.stackexchange.com/questions/6607/multiple-databases-single-codebase">Multiple databases, single codebase</a>) but now a little confused on the best approach. This is our first Craft CMS site so still learning the possibilities.</p>

<p>We have domainone.com and domaintwo.com which will be almost identical in design and functionality but the copy throughout will be slightly different as each website is for the same brand but different locations (same country). </p>

<p>In a perfect scenario, both websites will share the same assets, CSS/JS, templates and plugins as they require the same functionality, however, they'll have their own login areas to manage their own content. </p>

<p>Approx. half of the content will be the same i.e. new and used vehicles, but they'll have different pages such as 'about us', 'meet the team' and so on.</p>

<p>Would the best option be to just copy over the plugins, templates etc to a fresh installation and separate the two completely or is there a way to achieve this 'perfect scenario'?</p>

<assets><multi-environment><multi-domain><multi-site>
Possible to share assets, templates and plugins across two domains but not all content?
# Possible to share assets, templates and plugins across two domains but not all content?

(Asked by: username_0 on 2016-05-26)

I've seen many similar questions ([Multiple databases, single codebase](https://craftcms.stackexchange.com/questions/6607/multiple-databases-single-codebase)) but now a little confused on the best approach. This is our first Craft CMS site so still learning the possibilities.

We have domainone.com and domaintwo.com which will be almost identical in design and functionality but the copy throughout will be slightly different as each website is for the same brand but different locations (same country).

In a perfect scenario, both websites will share the same assets, CSS/JS, templates and plugins as they require the same functionality, however, they'll have their own login areas to manage their own content.

Approx. half of the content will be the same i.e. new and used vehicles, but they'll have different pages such as 'about us', 'meet the team' and so on.

Would the best option be to just copy over the plugins, templates etc to a fresh installation and separate the two completely or is there a way to achieve this 'perfect scenario'?

**Tags:** assets, multi-environment, multi-domain, multi-site


---

## 3 answers

### Answer by username_1 on 2016-06-27. Score: 2 | Accepted answer

As long as your sites are hosted on the same server, you can easily share templates and plugins between them by defining the appropriate path constants in the index.php files for your sites:
define('CRAFT_PLUGINS_PATH', '/absolute/path/to/your/plugins/folder');
define('CRAFT_TEMPLATES_PATH', '/absolute/path/to/your/templates/folder');

As for your resources (i.e. CSS and JavaScript files), symbolic linking is an option. However, I would recommend following username_2's suggestion in his answer – pick one domain and serve all assets from that domain's public folder, or even better: host the resources on a CDN.


---

### Answer by username_2 on 2016-06-27. Score: 1

You could make use of symbolic links. This works if your sites are:

* on the same system
* your system is running on a Linux server environment
* you have console access (ex. SSH)

With symbolic links you can easily "mirroring" folders like css/js and templates, plugins, etc.. For the assets it's maybe better to use only one url and pointing to this over all domains. This avoiding dublicated content in Google&Co..


---

### Answer by username_3 on 2016-05-27. Score: 1

You could use a deployment solution like [Beanstalk](http://beanstalkapp.com/) to update both your template folders with one push. I would think you could use the same assets folder fairly easily as long as the folder lives above the "craft" folder for both installations.

> **Comments:**
> **username_0**: Interesting, thanks! Never thought of that route. I'm exploring Multi-Environment options first to see what's actually possible with Craft but can always fall back to this.  

---

