<virtualhost>导致我们的Apache服务器产生“内部错误”

时间:2018-08-16 15:05:35

标签: apache .htaccess internal-server-error

当我将<VirtualHost>指令添加到下面的.htaccess文件时,我们的生产服务器news.XXX(我写的是XXX而不是我们的真实域名)失败,内部错误。

请帮助您了解错误原因。

Header set X-UA-Compatible "IE=edge"
AddType text/html .html
AddType text/x-component .htc
AddHandler server-parsed .html .xml
Options -Indexes +Includes +ExecCGI
Order allow,deny
Allow from all


#<FilesMatch "\.(xml|css|js)$">
#  ExpiresActive on
#  ExpiresDefault "access plus 15 minutes"
#</FilesMatch>

#<IfModule mod_expires.c>
#  ExpiresActive on
#  ExpiresDefault "access"
#  ExpiresDefault "access plus 15 minutes"
#  ExpiresByType text/html "access"
#  ExpiresByType text/plain "access"
#  ExpiresByType text/csv "access"
#  ExpiresByType application/xml "access"
#</IfModule>


RewriteEngine On

#DirectoryIndex /working-on-server.html
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ /working-on-server.html [L]

# Replaced real domain with XXX
<VirtualHost victor11.XXX>
DirectoryIndex /cgi-bin/news/index.NEW.fcgi
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /cgi-bin/news/index.NEW.fcgi [L,QSA]
</VirtualHost>

DirectoryIndex /cgi-bin/news/index.fcgi
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /cgi-bin/news/index.fcgi [L,QSA]

2 个答案:

答案 0 :(得分:0)

VirtualHost指令仅在全局服务器作用域/实际配置文件中有效。在htaccess或任何其他配置部分中无效。

如果需要虚拟主机,则需要在启动时编辑Apache读取的配置文件。

每个指令都在手册中列出了对其有效的上下文。

答案 1 :(得分:0)

VirtualHost指令不能在.htaccess文件中使用,因为Apache在包含.htaccess规则之前已经确定正在使用哪个VirtualHost。

如果您使用同一公共html文件夹拥有多个VirtualHost,则可能需要执行以下操作:

randint()