web-dev-qa-db-ja.com

CSSとJSは、適切なサブドメインホスト名からではなく、IPアドレスからロードされます

静的IPを持つVM(LAMP)が1つあります。このマシンには2つのサブドメインが構成されています。サブドメインの1つを参照すると、DocumentRootで指定されたファイルが実行されます。ここでの問題は、IP-Addres/Pathからemをロードするため、ソース(CSS、JS、...)がロードされないことですが、正しいDocumentRootを指定するためにサブドメインが必要なので動作しません。

例:

192.168.10.10 goes to /var/www/

sub.mydomain.com goes to /var/www/sub/
dom.mydomain.com goes to /var/www/dom/

sub.mydomain.comのサイトによって読み込まれたスクリプトは、192.168.10.10/css/default.cssから読み込まれますが、これは明らかに動作していません。

これを機能させるには、どこに変更を加える必要がありますか? (送信後のフォームリダイレクトもServerIPにマッピングされます)

これは、Apache-ConfのVirtualHosts-Sectionまたは.htaccess-Fileの一部ですか?

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>

および私の.htaccess-File:

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

CSSとJSがIPアドレスからロードされる唯一の方法は、HTMLコードで指定されている場合のみです。次からHTMLコードを変更する必要があります。

 <link rel="stylesheet" type="text/css" href="http://192.168.10.10/css/default.css">

相対リンクへ:

 <link rel="stylesheet" type="text/css" href="/css/default.css">
1