Apache-2.2

將 Web 子文件夾重定向到根目錄(/文件夾到 /)

  • September 16, 2010

我正在嘗試使用 .htaccess 將 /folder 重定向到 / ,但我得到的只是 Apache HTTP Server 測試頁。我的根目錄如下所示:

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

我的 .htaccess 看起來像這樣:

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

我究竟做錯了什麼?我檢查了我的 httpd.conf(我正在執行 Centos)並且正在載入 mod_rewrite 庫。附帶說明一下,我的伺服器不是 www 伺服器,它只是一個虛擬機,所以它的主機名是 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>

我發現我<VirtualHost>的聲明缺少<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]

如果我知道熱說 if 會更乾淨REQUEST_URI = /,然後重定向但我不知道如何。

確保載入了 Mod_Rewrite。確保你有AllowOverrides All你的根目錄(它是 Apache 的預設值,但大多數發行版none在 httpd.conf 文件中有一個預設值)。

引用自:https://serverfault.com/questions/149749