Apache VirtualHost 被忽略
Apache VirtualHost being ignored
我在 apache 上有一个网络应用 运行,通常没有任何问题。问题是现在 我正在尝试为同一个应用程序添加一个新域,但我无法让它正常工作。
我已经将两个新的 ServerAlias 与我的新域和子域放在一起,但由于某种原因它似乎被忽略了。当我在浏览器中输入域时,出现错误 404。
这是我的“sites-available/olddomain.com.conf”:
<VirtualHost *:80>
ServerName olddomain.com
ServerAlias *.olddomain.com
ServerAlias newdomain.com
ServerAlias *.newdomain.com
DocumentRoot /var/www/MakePress/MakePress/web
<Directory /var/www/MakePress/MakePress/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
我也试过像这样将 ServerName 和 ServerAlias 更改为新域:
ServerName newdomain.com
ServerAlias *.newdomain.com
但奇怪的是,newdomain.com一直不工作,而olddomain.com即使没有它也能正常工作.conf 文件中的条目。另一方面,我尝试用 a2dissite
删除 sites-available/olddomain.com.conf 并且两个域都停止工作(都开始显示 "Index of /" 应用程序 - 只显示 www 文件夹内的文件夹和文件 - 没有显示错误 404)
每次修改后我执行service apache2 reload
和apache2 restart
。
几个小时以来,我一直在努力解决这个问题。任何帮助将不胜感激!! :-(
谢谢!
PS:如果确定问题很重要,我的站点是 PHP/Symfony 2.3 应用程序。
PS2:这是 apache2ctl -S
的输出:
VirtualHost configuration:
*:80 olddomain.com (/etc/apache2/sites-enabled/olddomain.com.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
感谢你们的帮助,
原来是symfony配置的问题。
我的 parameters.yml 上的参数 basehost
设置为 olddomain.com 所以应用程序不接受我的 newdomain.com.
我在 apache 上有一个网络应用 运行,通常没有任何问题。问题是现在 我正在尝试为同一个应用程序添加一个新域,但我无法让它正常工作。
我已经将两个新的 ServerAlias 与我的新域和子域放在一起,但由于某种原因它似乎被忽略了。当我在浏览器中输入域时,出现错误 404。
这是我的“sites-available/olddomain.com.conf”:
<VirtualHost *:80>
ServerName olddomain.com
ServerAlias *.olddomain.com
ServerAlias newdomain.com
ServerAlias *.newdomain.com
DocumentRoot /var/www/MakePress/MakePress/web
<Directory /var/www/MakePress/MakePress/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
我也试过像这样将 ServerName 和 ServerAlias 更改为新域:
ServerName newdomain.com
ServerAlias *.newdomain.com
但奇怪的是,newdomain.com一直不工作,而olddomain.com即使没有它也能正常工作.conf 文件中的条目。另一方面,我尝试用 a2dissite
删除 sites-available/olddomain.com.conf 并且两个域都停止工作(都开始显示 "Index of /" 应用程序 - 只显示 www 文件夹内的文件夹和文件 - 没有显示错误 404)
每次修改后我执行service apache2 reload
和apache2 restart
。
几个小时以来,我一直在努力解决这个问题。任何帮助将不胜感激!! :-(
谢谢!
PS:如果确定问题很重要,我的站点是 PHP/Symfony 2.3 应用程序。
PS2:这是 apache2ctl -S
的输出:
VirtualHost configuration:
*:80 olddomain.com (/etc/apache2/sites-enabled/olddomain.com.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
感谢你们的帮助,
原来是symfony配置的问题。
我的 parameters.yml 上的参数 basehost
设置为 olddomain.com 所以应用程序不接受我的 newdomain.com.