我想将
https://example.com/folder
重定向到 https://example.com/otherfolder/anotherfolder
,但地址栏仍显示 https://example.com/folder
。
没有关于完成这项工作的
.htaccess
教程,而且我在 StackOverflow 上能找到的唯一教程都是更复杂的问题。
到目前为止我已经尝试过:
RewriteEngine On
RewriteRule ^folder/?$ /otherfolder/anotherfolder
我得到了重写/重定向,但 URL 未被屏蔽。
编辑:已解决,见下文。缺少尾部斜杠。
RewriteRule ^folder/?$ /otherfolder/anotherfolder
我假设
/otherfolder/anotherfolder
必须是一个物理文件系统目录(来自名称“文件夹”以及事实上通常不会有一种方法来路由请求)。在这种情况下,您在 substitution 字符串(目标 URL)上缺少尾部斜杠。
如果没有尾部斜杠,mod_dir 将触发外部 301 重定向以附加尾部斜杠并公开重写的文件系统目录,因此您最终将看到到
/otherfolder/anotherfolder/
的外部重定向(注意尾部斜杠)。
请注意,这将是 301(永久)重定向并由浏览器持久缓存。
所以,规则应该这样写,with结尾斜杠:
RewriteRule ^folder/?$ /otherfolder/anotherfolder/ [L]
如果您有其他指令,您可能需要
L
(或 END
)标志。