2010-05-28 73 views
7

我需要将我的托管帐户的根域指向子目录(joomla)。我希望这是不可见的(即浏览器地址栏不会更改)。此外,我需要这个工作,当用户点击根或子文件/子文件夹。隐形.htaccess从/ public_html /重定向到/ public_html /文件夹

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

这一个工程时,没有指定的子文件/子文件夹:

RewriteEngine On 
RewriteRule ^$ /joomla/ [L] 

当一个子文件/子文件夹指定这一个工程:

RewriteEngine On 

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

我只是无法弄清楚如何结合起来。

回答

3
RewriteEngine On 

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

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

+0

那一个抛出一个500服务器错误有或没有文件/文件夹。当我添加“RewriteCond%{REQUEST_FILENAME}!-f”时,它可以与指定的文件/文件夹一起使用,但不会引发500错误。 – ggutenberg 2010-05-28 08:22:32

2

这应该做的伎俩:

RewriteEngine On 

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

.*也将匹配一个空字符串。您也很可能想要执行-d检查以确保它们不访问存在的目录(尽管考虑到这可能与/匹配相混淆,我不知道)。

+0

适用于文件/文件夹,但根目录不会重定向。只是给了我一个目录列表。没有-d行时,它会在触击根时触发500错误。 – ggutenberg 2010-05-28 08:23:33

相关问题