使用URL重写删除子文件夹

时间:2020-03-25 00:34:49

标签: html .htaccess redirect url-rewriting

我不是 URL重写的专家,但我想使用 .htaccess 来显示如下路径:

https://www.example.com/folder/login/

以这种方式:

https://www.example.com/folder/

但是我不希望真正的重定向:我的网站应该显示https://www.example.com/folder/login/页,但是URL会有所不同,以便用户可以在登录时认为自己仍然在https://www.example.com/folder/上。

有可能吗?

如果是,最后一个问题:我已经在ROOT文件夹中启用了RewriteEngine on,是否也必须将它放在另一个 .htaccess 文件中(该文件放在{ {1}})?

1 个答案:

答案 0 :(得分:1)

/folder/是请求的URL,出现在浏览器的地址栏中,/folder/login/是将请求重写到的基础文件系统路径。

要将内部/folder/重写为/folder/login/,请尝试在根.htaccess文件中进行以下操作。

RewriteEngine On

RewriteRule ^folder/$ /folder/login/ [L]

/folder/login/可能是文件系统目录,因此不会直接处理该请求。理想情况下,您将直接重写为处理请求的文件。在这种情况下,我假设mod_dir将发出目录索引文档的内部子请求,例如。 index.php

我已经在ROOT文件夹上启用了RewriteEngine

请注意,指令的顺序很重要。

我也必须把它放在另一个.htaccess文件中吗(放在https://www.example.com/folder/login/中)

否,您可以将其放在根.htaccess文件中。 (您可以将其放在/folder/.htaccess中,但是指令需要更改。将其放在/folder/login/.htaccess中是没有意义的,因为那样便无法隐藏/login子目录。 )