我需要将托管帐户的根域指向子目录(joomla)。我希望这是不可见的(即浏览器地址栏不会改变)。此外,当用户点击根或子文件/子文件夹时,我需要这个。
我已尝试过以下规则,这些规则单独运作,但我无法让它们一起工作。
当没有指定子文件/子文件夹时,这个工作正常:
RewriteEngine On
RewriteRule ^$ /joomla/ [L]
这个在指定子文件/子文件夹时起作用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ /joomla/$1 [L]
我无法弄清楚如何将它们组合起来。
答案 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
检查,以确保他们没有访问存在的目录(但考虑到这一点,这可能会导致/
匹配,我不喜欢知道)。