J'ai un VM (LAMP) avec une adresse IP statique. Deux sous-domaines sont configurés sur cette machine. Si je navigue dans l’un des sous-domaines, il exécute les fichiers spécifiés dans DocumentRoot. Le problème ici est qu'il n'y a pas de sources chargées (CSS, JS, ...) car elles sont chargées depuis l'adresse IP/Addres/Path, mais cela ne peut pas fonctionner car j'ai besoin du sous-domaine pour spécifier le bon DocumentRoot.
Exemple:
192.168.10.10 goes to /var/www/
sub.mydomain.com goes to /var/www/sub/
dom.mydomain.com goes to /var/www/dom/
les scripts chargés par le site sur le site sub.mydomain.com le sont à partir de 192.168.10.10/css/default.css, ce qui ne peut évidemment pas fonctionner.
Où dois-je placer des modifications pour que cela fonctionne? (Les redirections de formulaire après la soumission sont également mappées vers ServerIP)
Cela fait-il partie de la section VirtualHosts d’Apache-Conf ou du fichier .htaccess?
Apache-Site-Configuration:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sub.mydomain.com
ServerAlias sub.mydomain.com
DocumentRoot /var/www/sub/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#RewriteEngine on
#RewriteCond %{SERVER_PORT} ^80$
#RewriteRule ^(.*)$ https://%{SERVER_NAME} [L,R]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName sub.mydomain.com
ServerAlias sub.mydomain.com
DocumentRoot /var/www/sub/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/sub/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/Apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/Apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE text/css text/javascript
AddOutputFilterByType DEFLATE application/javascript application/x-javascript
</IfModule>
SSLEngine on
SSLCertificateFile /etc/Apache2/ssl/wildcard_mydomain.cert
SSLCertificateKeyFile /etc/Apache2/ssl/wildcard_mydomain.key
SSLCertificateChainFile /etc/Apache2/ssl/wildcard_mydomain.intermediate
</VirtualHost>
Et mon fichier .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ajax/(.*)$ ajax.php?shform=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?shform=$1 [QSA,L]
La seule façon de charger le CSS et le JS à partir d'une adresse IP est si le code HTML le spécifie. Vous devrez changer votre code HTML à partir de:
<link rel="stylesheet" type="text/css" href="http://192.168.10.10/css/default.css">
à un lien relatif:
<link rel="stylesheet" type="text/css" href="/css/default.css">