静的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]
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">