我有一台配置了许多虚拟主机的本地开发 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 中是否有需要更改的内容?