2011-02-16 128 views
0

我目前使用.htaccess将域重定向到子目录。网址“example.com”成功重定向到“example.com/sub”,“example.com/forums/”将重定向到“example.com/sub/forums”,从地址隐藏子目录“sub”酒吧。但使用“example.com/forums”(没有结尾的斜杠)会正确重定向,但在浏览器的地址栏中显示example.com/sub/forums。mod_rewrite尾部斜杠问题

我已经尝试修改htaccess文件来添加尾部的斜杠,但省略但似乎没有帮助。对此问题的任何帮助将不胜感激。

RewriteEngine on 
RewriteCond %{HTTP_HOST} example\.com [NC] 
RewriteCond %{REQUEST_URI} !^/sub/ 
RewriteRule ^(.+) sub/$1 [L] 

回答

0

当你requst /论坛,Apache的弄清楚,/论坛不是一个文件,而是一个目录/论坛/,所以它发出一个外部重定向(301重定向)到正确的URL。 你所要做的就是拦截这种行为是这样的:

RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/sub/ 
RewriteRule ^(.+) sub/$1 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_URI} !/$ 

实际的规则可能不同,但你的想法。