web-dev-qa-db-fra.com

CSS et JS sont chargés à partir de l'adresse IP plutôt que du sous-domaine approprié. Nom d'hôte

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]
3
xcy7e

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">
1
Stephen Ostermiller