.htaccess:将根URL重定向到子目录,但保留根URL结构

时间:2011-07-29 03:42:11

标签: .htaccess mod-rewrite

我在一个子目录中创建了一个网站,并希望该网站看起来好像它位于根目录中。

我使用下面的Mod_Rewrite代码来获取站点根目录以重定向到子目录,但我希望文件所在的文件夹不会出现。

目前:www.example.com/sitefiles/content/

想要:www.example.com/content

由于

Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^$ /sitefiles/    [L]
RewriteRule (.*) /sitefiles/$1 [L]

2 个答案:

答案 0 :(得分:2)

如果需要通过.htaccess和mod_rewrite完成,请使用:

Options +FollowSymlinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/sitefiles/
RewriteRule (.*) /sitefiles/$1 [L]
  1. 由于您未点击网站根目录时未明确指定页面,因此不需要此行:RewriteRule ^$ /sitefiles/ [L]

  2. 您需要为主重写规则添加条件,以防止重写循环(当重写的URL再次被重写时):RewriteCond %{REQUEST_URI} !^/sitefiles/

答案 1 :(得分:0)

好吧,目录应该没有理由出现在任何列表中,你发布的mod_rewrite应该允许你像你说的那样做。不过,我会采取不同的方式:

Options +FollowSymLinks +Indexes

RewriteEngine on
RewriteBase /
RewriteRule ^$ sitefiles/ [L]
RewriteRule ^(.+)$ sitefiles/$1 [L]

希望这有效。