.htaccess mod_重写尾部斜杠问题

.htaccess mod_重写尾部斜杠问题,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我目前使用.htaccess将域重定向到子目录。url“example.com”成功重定向到“example.com/sub”,而“example.com/forums/”将重定向到“example.com/sub/forums”,从而从地址栏隐藏子目录“sub”。但使用“example.com/forums”(无尾随斜杠)将正确重定向,但会在浏览器的地址栏中显示example.com/sub/forums 我曾尝试修改htaccess文件,在省略时添加尾部斜杠,但似乎没有帮助。在此问题上的任何

我目前使用.htaccess将域重定向到子目录。url“example.com”成功重定向到“example.com/sub”,而“example.com/forums/”将重定向到“example.com/sub/forums”,从而从地址栏隐藏子目录“sub”。但使用“example.com/forums”(无尾随斜杠)将正确重定向,但会在浏览器的地址栏中显示example.com/sub/forums

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

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

当您重新请求/forum时,Apache会发现/forum不是一个文件,而是一个目录/forum/,因此它会向正确的url发出一个外部重定向(301重定向)。 您要做的是拦截这样的行为:

RewriteEngine on

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

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/$
实际规则可能有所不同,但你明白了