php - 使用 .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 文件:
示例 1
RewriteRule ^/?api/([^/]+)?$ "request.php?rquest=$1" [L,QSA]
示例 2
RewriteRule ^/?api/([^/]+)/([^/]+)?$ "request.php?rquest=$2&ns=$1" [L,QSA]
文件在哪里request.php
。example.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 ...]
有关更多信息和示例,请参阅
推荐阅读
- amazon-web-services - 应用程序负载均衡器是否将路径转发到目标组
- flutter - Flutter中与屏幕高度相同的GridView
- list - Flutter 列表视图导航到类别
- python-3.x - 从其他文件导入一个类,而不必导入主文件具有的模块
- javascript - 如何建立一个可以显示图像二进制代码的网站?
- progressive-web-apps - 具有动态 URL 的渐进式 Web 应用程序的范围
- django - Django // 版本更新后所有请求上的 Daphne 500 错误“TypeError:object HttpResponse 不能用于 'await' 表达式”
- javascript - 如何修复偏好解构 eslint 错误?
- reactjs - @mui/material/styles 和 @mui/styles 之间的区别?
- javascript - 当我进行模糊处理时,如何使 AsyncSelect 下拉列表保持不变?