WWW zložka pre každý modul zvlásť
- minimal
- Člen | 12
Zdravím,
potreboval by som poradiť ako separovať www zložku pre 2 rôzne moduly. Na každom module mi beží iná webstránka so spoločnou logikou a však FE je rozličný. Klient vyžaduje aby každá stránka mal zvlásť robots.txt a aby na jednej stránke neboli dostupné JS pre tu druhú.
Ďakujem
- David Matějka
- Moderator | 6445
Ahoj, v nette není problém mít rozdílné www složky, takže si ji klidně zkopíruj a pojmenuj třeba www-admin a půjde to – stačí, aby tam byl ten index.php a htaccess, který to na něj nasměruje.
Pokud ti jde ale jen o robots (což je relevantní) a nedostupnost js (což je celkem pitomost, ale ok), tak to můžeš i vyřešit třeba přes htaccess
- Petr Steinbauer
- Člen | 26
V nette s více www složkami není problém, to podstatné se děje ve web serveru – tedy například nginx, nebo apache2.
Nastavení
Takto by – !bez jakékoliv záruky! – mohlo vypadat velmi jednoduché
nastavení nginx:
server {
listen 80 default;
root /srv/www;
index index.php;
server_name domenaA.cz$;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
}
server {
listen 80 default;
root /srv/www-kopie;
index index.php;
server_name domenaB.cz$;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
}
u apache2 nějak takto:
<VirtualHost domenaA.cz:80>
DocumentRoot /srv/www
ServerName domenaA.cz
</VirtualHost>
<VirtualHost domenaB.cz:80>
DocumentRoot /srv/www
ServerName domenaB.cz
</VirtualHost>
Pokud Vám webhosting vše směruje do jedné složky tak s v index.php změnte volání bootstrapu na své:
if($_SERVER['HTTP_HOST'] === 'domenaA.cz') {
$container = require __DIR__ . '/../App/bootstrap.php';
} else {
$container = require __DIR__ . '/../App/bootstrap2.php';
}
a robots.txt a sitemaps.xml a podobné si ošetřete přes php → ale obecně to není dobrý nápad – pokud jste do tohoto nucen, zvažte změnu hostingu, či návrhový vzor.
Editoval Petr Steinbauer (17. 8. 2020 21:15)