我正在使用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错误。我做错了什么?
艾哈迈尔
答案 0 :(得分:2)
VirtualHost必须写在httpd.conf或包含的文件中,而不是写在.htaccess中 将此配置移动到正确的文件,它将工作
答案 1 :(得分:0)
你拥有的不能包含在htaccess文件中。
<VirtualHost>
容器是为server / vhost配置保留的,而不是htaccess。
htaccess文件中不允许使用ServerName
和DocumentRoot
指令。
<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"