首页 > 解决方案 > 使用 .htaccess 文件隐藏和重命名文件夹

问题描述

假设,我的网站上有一个链接如下:www.example.com/test/index.php. 我想对访问者隐藏“测试”文件夹并将其显示为“苹果”,这样当用户键入www.example.com/apple或时www.example.com/apple/index.php,它会自动重定向到www.example.com/test/index.php。我想通过编辑 .htaccess 文件使其成为可能,如下所示:

RewriteEngine On
RewriteRule ^test/(.*) apple/$1

但是,它不起作用。这里有什么问题吗?我将如何重命名文件夹?

标签: php.htaccessdirectoryrename

解决方案


对于 PHP 文件:

示例 1

RewriteRule ^/?api/([^/]+)?$ "request.php?rquest=$1" [L,QSA]

示例 2

RewriteRule ^/?api/([^/]+)/([^/]+)?$ "request.php?rquest=$2&ns=$1" [L,QSA]

文件在哪里request.phpexample.com/api/{ns}/{rquest}后面和example.com/api/{rquest}前面都会提到。

如果你想按照你的要求使用一个文件夹,你可以像下面这样使用。请测试一下,因为我还没有这样使用过。

RewriteEngine on
RewriteBase /
RewriteRule ^/?apple/([^/]+)?$ "test/index.php?categories=$1" [L,QSA]

这只是一个重写规则。您定义一个模式,然后将其与您想要重写的内容相匹配。就那么简单。

你想忽略后面的斜线吗?这就像

example.com/help/legal/privacy/eula应该重写为example.com/help.php?path=/legal/privacy/eula,那么您必须忽略URL 模式中/后跟的路径中的 。help

您可以简单地更改正则表达式,如下所示:

RewriteRule ^/?help/(.+)?$ "help.php?topic=$1" [L,QSA]

所以正则表达式使用(.+)手段,采取并采取一切措施,不要停止。

这是 URL 语法:

RewriteRule {regex_of_url_pattern} "{rewrite_into_what}" [OPTIONS ...]


有关更多信息和示例,请参阅


推荐阅读