4

我有一台配置了许多虚拟主机的本地开发 Debx64 机器。主 URL 设置为

<VirtualHost *:80>
ServerAdmin webmaster@blah.com
ServerName blah.com 
ServerAlias blah.com 
DocumentRoot /home/blah/v1.blah.com 
<Directory /home/blah/v1.blah.com/>
            AllowOverride All
            Order allow,deny
            allow from all
</Directory>
AccessFileName .htaccess  
ErrorLog /home/blah/blah_logs/v1.blah.com.in-error_log
CustomLog /home/blah/blah_logs/v1.blah.com.in-access_log common 
</VirtualHost>

并重定向到主要的操作 VH

<VirtualHost *:80>
 ServerAdmin webmaster@blah.com
 ServerName v1.blah.com 
 ServerAlias v1.blah.com 
 DocumentRoot /home/blah/v1.blah.com 
<Directory /home/blah/v1.blah.com/>
            AllowOverride All
            Order allow,deny
            allow from all
</Directory>
AccessFileName .htaccess  
ErrorLog /home/blah/blah_logs/v1.blah.com.in-error_log
 CustomLog /home/blah/blah_logs/v1.blah.com.in-access_log common 
</VirtualHost>

我在 v1.blah.com 上设置了 .htaccess 来将 .html 解析为 .php

Options +ExecCGI

AddHandler php-fcgi .php .html 
Action php-cgi /home/php5-fcgi
<FilesMatch "^php5?\.(ini|cgi)$">
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
</FilesMatch>

如果我以 v1.blah.com 访问 URL,这很好用,但是如果我以 blah.com 访问它,则不会调用 .htaccess 并且正常提供 .html。

我错过了什么?php.ini 中是否有需要更改的内容?

4

1 回答 1

7

是否有特殊原因需要为您的主机设置两个单独的条目?看到他们都使用相同的日志文件和 DocumentRoot,你能不能将 blah.com 添加到 ServerAlias 的列表中?

因此,您最终会得到以下配置:

<VirtualHost *:80>
ServerAdmin webmaster@blah.com
ServerName v1.blah.com
ServerAlias v1.blah.com blah.com 
DocumentRoot /home/blah/v1.blah.com 
<Directory /home/blah/v1.blah.com/>
            AllowOverride All
            Order allow,deny
            allow from all
</Directory>
AccessFileName .htaccess  
ErrorLog /home/blah/blah_logs/v1.blah.com.in-error_log
CustomLog /home/blah/blah_logs/v1.blah.com.in-access_log common 
</VirtualHost>
于 2012-06-08T06:25:25.953 回答