更改文档根目录后500内部服务器错误

时间:2014-01-29 18:46:59

标签: apache .htaccess

我正在使用wamp服务器。我有一个文件夹零售商位于www文件夹内。此Retailer文件夹中有子文件夹public,其中包含index.php文件。我试图将文档根目录更改为此公用文件夹。这是我用.htaccess

做的
<VirtualHost *:80>
    ServerName local.Retailer
    DocumentRoot "C:\wamp\www\Retailer\public"      \\update

    SetEnv APPLICATION_ENV "development"

    <Directory "C:\wamp\www\Retailer\public">       \\update
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]
    </Directory>
</VirtualHost>

但是当我尝试访问localhost / Retailer时,我收到内部服务器500错误。我做错了什么?

艾哈迈尔

2 个答案:

答案 0 :(得分:2)

VirtualHost必须写在httpd.conf或包含的文件中,而不是写在.htaccess中 将此配置移动到正确的文件,它将工作

答案 1 :(得分:0)

你拥有的不能包含在htaccess文件中

<VirtualHost>容器是为server / vhost配置保留的,而不是htaccess。

htaccess文件中不允许使用ServerNameDocumentRoot指令。

<Directory>容器是为server / vhost配置保留的,而不是htaccess(实际上是每个目录的应用程序)

htaccess中不允许AllowOverride,它是一个指令,它基本上定义了允许在htaccess文件中覆盖的内容以及不允许覆盖的内容。允许htaccess文件定义它是没有意义的。

这些指令是您可以拥有的该文件的唯一部分:

    SetEnv APPLICATION_ENV "development"

    DirectoryIndex index.php

    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]

如果您尝试更改文档根目录,则需要进入vhost / server配置,并查找以下行:

DocumentRoot "C:\wamp\www\Retailer"

并将其更改为:

DocumentRoot "C:\wamp\www\Retailer\public"