Это связано с Перезапись subdomain.domain.com при наличии других «поддоменов»
Мне нужен mod_rewrite, чтобы «остановить» обработку, но, похоже, она продолжается.
В моем регистраторе я установил записи A как:
* 12.34.56.78
@ 12.34.56.78
mgr 12.34.56.79 [it was working, and is working]
dbaccess 12.34.56.79 [this is something new I added]
Теперь мой httpd.conf выглядит так:
<VirtualHost 12.34.56.79:80> // notice the 79 which is something I'm trying out!
ServerAlias dbaccess.example.com
DocumentRoot /var/www/html/dbaccess
ServerName dbaccess.example.com
</VirtualHost>
NameVirtualHost 12.34.56.78:80
<VirtualHost 12.34.56.78:80>
ServerAlias *.example.com // trying to catch science.example.com
DocumentRoot /var/www/html/site
ServerName www.example.com
<IfModule mod_rewrite.c>
RewriteEngine On
...
RewriteCond %{HTTP_HOST} ^science\.example\.com [NC]
RewriteRule (.*) http://www.example.com/classes/science/280.html [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...
</VirtualHost>
// this is needed for other purposes
Listen *:2194
<VirtualHost *:2194>
Redirect / http://mgr.example.com/
</VirtualHost>
Вот что работает, а что нет:
http://www.example.com/ works fine
http://mgr.example.com/ works fine
http://science.example.com/ works fine
http://dbaccess.example.com/ does NOT work fine
Доступ к dbaccess.example.com перенаправляет меня на www.dbaccess.example.com (то же самое, если я делаю doesnotexist.example.com, который перенаправляется на www.doesnotexist.example.com)
Как заставить dbaccess.example.com отображать содержимое / var / www / html / dbaccess?
Мне нужно было настроить все по-другому, это становилось все сложнее, чем нужно.
У меня есть следующие записи A:
* 12.34.56.78
@ 12.34.56.78
mgr 12.34.56.79
I removed:
dbaccess 12.34.56.79
Мой httpd.conf теперь гласит:
// back to original
NameVirtualHost 12.34.56.78:80
<VirtualHost 12.34.56.78:80>
ServerAlias www.example.com science.example.com // change made that works
DocumentRoot /var/www/html/site
ServerName www.example.com
<IfModule mod_rewrite.c>
RewriteEngine On
...
RewriteCond %{HTTP_HOST} ^science\.example\.com [NC]
RewriteRule (.*) http://www.example.com/classes/science/280.html [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...
</VirtualHost>
// back to original
<VirtualHost 12.34.56.78:80>
ServerAlias dbaccess.example.com
DocumentRoot /var/www/html/dbaccess
ServerName dbaccess.example.com
</VirtualHost>
Listen *:2194
<VirtualHost *:2194>
Redirect / http://mgr.example.com/
</VirtualHost>
Изменить:
NameVirtualHost 12.34.56.78:80
к
NameVirtualHost *:80
чтобы убедиться, что vhosts получает запросы на обоих IP-интерфейсах