redirectWeb子文件夹根(/文件夹到/)

我试图redirect/文件夹/使用.htaccess但我所得到的是Apache HTTP服务器testing页。 我的根目录如下所示:

/ .htaccess -/folder -/folder2 -/folder3 

我的.htaccess看起来像这样:

 RewriteEngine On RewriteCond %{REQUEST_URI} !^/folder/ RewriteRule (.*) /folder/$1 

我究竟做错了什么? 我检查了我的httpd.conf(我正在运行Centos)和mod_rewrite库正在加载。 作为一个方面说明,我的服务器不是一个万维网服务器,它只是一个虚拟机,所以它的主机名是centosvm。

另外:我的httpd.conf看起来像这样:

 <VirtualHost *:80> ServerName taa.local DocumentRoot /var/www/html SetEnv APPLICATION_ENV "dev" Alias /taa /var/www/html/taa/public <Directory /var/www/html/taa/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 

确保加载了Mod_Rewrite。 确保你的根目录下有AllowOverrides All (这是Apache默认的,但是大多数发行版在httpd.conf文件中都有一个默认的none )。

我发现我的<VirtualHost>声明缺less一个根<Directory><Directory>声明。 通过改变我的<VirtualHost为:

 <VirtualHost *:80> ServerName taa.local DocumentRoot /var/www/html SetEnv APPLICATION_ENV "dev" Alias /folder1 /var/www/html/folder1/public <Directory /var/www/html> AllowOverride All Order allow,deny Allow from all </Directory> <Directory /var/www/html/folder1/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 

我的/.htaccess看起来像:

 RewriteEngine On RewriteCond %{REQUEST_URI} !^/folder1/ RewriteCond %{REQUEST_URI} !^/folder2/ RewriteCond %{REQUEST_URI} !^/folder3/ RewriteCond %{REQUEST_URI} !^/folder4/ RewriteCond %{REQUEST_URI} !^/folder5/ RewriteRule (.*) folder1/$1 [L] 

如果我知道如果REQUEST_URI = /很热,然后redirect,但我不知道如何,这将是更清洁。

您需要从与RewriteCond的匹配中删除最初的“/”

请参阅http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond中的示&#x4F8B;

 RewriteEngine On RewriteCond %{REQUEST_URI} !^folder/ RewriteRule (.*) /folder/$1