使用wamp上的.htaccess更改文档根目录

时间:2014-01-30 19:01:51

标签: apache .htaccess

我现在已经在我的头上刮了很长时间。无法设法让它发挥作用。 (我是一个带有apache的菜鸟也可能是一个原因)。好吧,问题就是问题。我正在使用wamp,我有一个目录Retailer。其中有另一个名为public的目录,其中包含索引和其他文件。我想将此public目录文档设为root。我想用.htaccess

实现这一目标

我的用于apache的重写模块已打开。

以下是我的尝试:

RewriteEngine on
RewriteBase /public/
RewriteRule ^index.php$ test.php

我也尝试了

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^localhost/Retailer$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^localhost/Retailer$ 
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

我试过了

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^http://localhost/Retailer/$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^http://localhost/Retailer/$ 
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

但是所有这些案例的结果都是一样的。那是: enter image description here

任何帮助将不胜感激 艾哈迈尔

2 个答案:

答案 0 :(得分:4)

Retailer/.htaccess档案

中使用此规则
RewriteEngine on
RewriteBase /Retailer/

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

答案 1 :(得分:3)

您应该在.htaccess文件中配置,而不是在apache配置文件httpd.conf中配置:

<VirtualHost 127.0.0.1:80>
  DocumentRoot "/path/to/project/Retailer/public"  
  ServerName "retailer.local"
  ServerAlias "www.retailer.local" 
</VirtualHost>

您还需要使用下一行更新hosts文件:

127.0.0.1 retailer.local

然后重启您的网络服务器!