不可见的.htaccess从/ public_html /重定向到/ public_html /文件夹

时间:2010-05-28 08:12:18

标签: .htaccess redirect

我需要将托管帐户的根域指向子目录(joomla)。我希望这是不可见的(即浏览器地址栏不会改变)。此外,当用户点击根或子文件/子文件夹时,我需要这个。

我已尝试过以下规则,这些规则单独运作,但我无法让它们一起工作。

当没有指定子文件/子文件夹时,这个工作正常:

RewriteEngine On
RewriteRule ^$ /joomla/ [L]

这个在指定子文件/子文件夹时起作用:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ /joomla/$1 [L]

我无法弄清楚如何将它们组合起来。

2 个答案:

答案 0 :(得分:3)

RewriteEngine On

RewriteRule ^(.*)$ /joomla/$1 [L]

应该工作(未经测试)。这和你的第二次尝试之间的关键区别是+ vs *。 +将匹配一个或多个,而*将匹配0或更多,所以当没有指定文件/子目录时,这也应该有用。

答案 1 :(得分:2)

这应该可以解决问题:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /joomla/$1 [L]

.*也会匹配一个空字符串。您也很可能希望进行-d检查,以确保他们没有访问存在的目录(但考虑到这一点,这可能会导致/匹配,我不喜欢知道)。