.htaccess - 隐藏 URL 中的目录,同时保留其他文件

2023-12-05

我开发了一个巨大的工具工作室,每个工具在 /tools/ 文件夹中都有自己的目录。所以如果你有一个名为example,URL 为 /studio-dir/tools/example/。

我试图从 URL 中隐藏 /tools/ 目录,同时确保 /tools/ 目录之外的其他文件仍然有效。例如,应保留 /index.php 文件和 /admin/ 目录。

我尝试了这个,但它只会导致所有内容出现大量 404 错误。我知道这可能很糟糕,我不喜欢重写 URL。 :P

RewriteCond %{REQUEST_URI} !^/tools/
RewriteRule ^/?([^/]+)$ /tools/$1 [L]

如果你还是很困惑,我想:

http://www.example.com/studio/工具/示例/index.php

能够加载为:

http://www.example.com/studio/示例/index.php

同时仍然保留 /tools/ 目录,并允许加载 /tools/ 目录之外的其他文件。

这可能吗?


你将需要这样的东西:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule    /studio/(.*) /studio/tools/$1    [L]
 </IfModule>

问题是,如果请求的文件同时位于 studio 文件夹和 tools 文件夹中,它将无法工作。

但没有办法阻止这种情况,因为服务器永远不知道 URL 是指 /studio/tools/ 还是 /studio/

编辑:您可以从可见网址中删除 /tools/,如下所示:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule    /studio/(.*) /studio/tools/$1    [L]
    RewriteRule    /studio/tools/(.*) /studio/$1    [L,R=302]
 </IfModule>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.htaccess - 隐藏 URL 中的目录,同时保留其他文件 的相关文章

  • django获取FileField的绝对路径

    我试图在模板上调用 FileField 时检索绝对路径 以 http 开头 我怎样才能做到这一点 ie fl uploadedfile gt 返回相对路径 如 media uploads 当我想要的时候This http www blabl
  • Request.Url.Query 和 Request.QueryString 有什么区别?

    我一直在追踪 URL 重写应用程序上的错误 该错误表现为查询字符串中某些变音符号的编码问题 基本上 问题是基本上 search aspx search he m nek 的请求被 search he c5 99m c3 a1nek 的查询字
  • 在 htaccess 文件中使用 RewriteMap

    如何在 htaccess 文件中使用 RewriteMap 指令 当我把它放在那里时 我收到 此处不允许 RewriteMap 错误 我知道当将其放入 httpd conf 或虚拟主机配置文件中时 此错误将会消失 但我想知道是否可以将其放入
  • 强制某些页面通过 HTTPS,而其他页面则通过 HTTP...这可能吗?

    我真的被这个困住了 基本上 我尝试使用 IIS 的 URLRewrite 附加组件始终通过 SSL 制作 2 个页面 但我还需要强制所有其他页面使用 HTTP 叹气 不要问 但如果我强制其他页面通过 HTTP 那么当您查看 SSL 页面时
  • HTTP 到 HTTPS 301 重定向代码不起作用,显示重定向过多

    我正在为我的网站之一使用 Bluehost 最近 最近 我已将我的网站从 HTTP 迁移到 HTTPS 之后 我使用了不同的代码 包括以下代码 在我的网站上强制使用 HTTPS SSL Rewrite RewriteEngine On Re
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • Apache 重写规则可以使用或不使用尾部斜杠

    我正在尝试重定向一系列静态 URL 并且无论尾部斜杠是否存在 我都希望它能够正常工作 foo bar gt tacos foo bar gt tacos 我已经尝试了以下方法以及各种变体 但我总是只得到尾部斜杠存在的匹配项 RewriteR
  • 重定向到另一个文件夹

    我读了这个 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htacces rewrite to redirect root url to subdir
  • mod_rewrite GUI?

    任何人都有用于开发 mod rewrite 规则的图形工具 理想情况下 它会显示重写管道 然后当给定 uri 实例时 会显示应用时的转换 让它们正确设置总是很痛苦 因此任何使其变得更容易的方法都会有所帮助 对于 htaccess 阅读 mo
  • htaccess 重写 url 删除子目录

    我正在尝试重写 http www example com directory folder to http www example com directory htaccess 文件位于directory 这是我的 htaccess 文件
  • 控制缓存过期

    通过 Google 网站管理员工具的 PageSpeed 分析器运行我的网页后 它向我报告我的资源没有被缓存 下面是我的 htaccess 文件中直接取自 H5BP 的代码 我是否正确地假设以下过期时间设置正确 但我的实现中出现了问题 或者
  • .htaccess 将所有页面重定向到新域上的主页

    我将使用哪个重定向规则来重定向下的所有页面olddomain example被重定向到newdomain example 该网站的结构完全不同 所以我想要每一页在旧域名下重定向到新域名索引页 我认为这可以 在 olddomain examp
  • 如果文件名减去扩展名,.htaccess url 重写行为将被覆盖。与网址相同

    我正在尝试整理 URL 并从中删除 php 扩展名等 我位于网站的基本文件夹中 因此没有可以优先处理的父 htaccess 文件或其他文件 这是我的 htaccess 代码 RewriteEngine On RewriteRule give
  • 从子目录文件夹中删除尾部斜杠 Apache 1.3.42 DirectorySlash Off .htaccess

    我正在尝试从 Apache 1 3 42 中的子目录文件夹中删除尾部斜杠 但是命令DirectorySlash Off当我尝试将规则添加到我的 Apache 版本时 不支持 htaccess file 目前我的链接行为如下 www exam
  • mod_rewrite, .htaccess 连接mysql数据库

    我希望 htaccess 文件中的 mod rewrite 链接到 mysql 数据库以向我提供映射信息 具体来说 我使用单个代码库来托管多个站点 因此 如果用户请求图像 例如 http www example com images car
  • 如果django项目位于子文件夹和子域中,如何编写.htaccess?

    我的 django 站点的路径是 staging ninjawebsite com clients project 我希望将其视为基本网址 django 项目位于public html clients project子文件夹 一切似乎都工作
  • 将 .com 重定向到 .htaccess 中的 .org

    我将domain com 和domain org 作为指向同一虚拟主机的别名 如何使用 htaccess 将所有domain com 请求重定向到domain org 你可以使用模组重写 http httpd apache org docs
  • HTAccess LocationMatch 服务器错误

    我正在尝试使用这个 htaccess改变RewriteBase如果位置是本地或实时服务器 Options FollowSymlinks RewriteEngine on
  • 如何为WCF服务创建重定向?

    我的网站 A 上托管了一个 WCF 服务 我还有另一个网站 B 它使用 IIS URL 重写将所有请求重定向到我的网站 A 但是 站点 B 不处理任何对 svc 文件的请求 返回 404 not find 知道如何让它发挥作用吗 UPD重定
  • 向 .htaccess 添加 HTTP 严格传输安全

    我想将 HTTP 严格传输安全指令添加到我的 htaccess 文件中 我已在此处的代码末尾添加了锁 但是当我测试测试 HSTS 预加载过程时 它显示设置未设置 我检查了 Apache 配置并看到 headers 模块已启用 我缺少什么

随机推荐

  • 有没有办法使用 jquery 或 javascript 检测用户是否按下了刷新按钮?

    我想知道 jquery 或 javascript 是否可以检测用户是否按下了浏览器的刷新按钮 如果可以的话我可以看一个例子吗 无法检测用户在页面刷新之前是否按下了刷新 但您可以使用 cookie 来确定页面在第二次加载后是否刷新 例如 每个
  • 在 Objective-C 中如何确定我的方法的“调用者”? [复制]

    这个问题在这里已经有答案了 所以我有一个相当复杂的应用程序 我可能天真地同意 调试 在进入某个方法后 我想打印出尽可能多的信息 包括谁调用了该方法 从哪个类 方法等调用了该方法 任何建议将非常感激 只需添加您的方法 NSLog Show s
  • 为什么边缘消失速度很慢?

    如中所述这个答案 边缘淡入ScrollView可能会很慢 我想知道 为什么 使用褪色边缘可能会导致明显的性能下降 并且仅应在应用程序的视觉需要时使用 设计 要请求 API 级别 14 及以上的淡入淡出边缘 请使用android requir
  • jQuery - 单击时如何将锚点滚动到页面顶部?

    我有一个链接列表divelements 我正在使用 dropcontent js 将内容加载到另一个元素中div单击链接时 我现在想添加一些代码 将单击的链接滚动到浏览器窗口的顶部 列表中每个项目的 HTML 如下所示 div class
  • 二维数组的分段错误

    有一个奇怪的分段错误错误 下面的代码运行良好 include
  • 在 ASP.NET MVC 中启用会话状态

    我想在 ASP NET MVC 应用程序中使用会话变量 我已经添加了
  • 如何限制 Sitecore 语言仅写入内容树的某些部分

    在我们的 Sitecore 实施中 我们有分支编辑器 他们需要英语及其母语 例如德语 的语言写入权限 但是 我们的内容树的某些部分不应由这些分支编辑器编辑英文版本 但母语版本可以 举一个具体的例子 如果我们有一个产品页面 其中包含一些全局信
  • JAVA_HOME指向错误的地方

    我似乎有一个错误指定的 JAVA HOME 变量 我可以解决很多事情 但现在我似乎陷入困境 我正在尝试使用 Google App Engine 并上传应用程序 当我这样做时 我收到错误 找不到基于java home的javac可执行文件 尝
  • 不缓存从 glassfish 安全页面引用的静态资源

    我正在使用 JSF 1 2 和 glassfish 声明性安全性以及 j security check 我的 xhtml 页面位于安全页面文件夹 我通过将 Web 资源约束设置为安全约束来保护其中的所有资源 secure pages 我的
  • Android Studio 内联编译器显示红色错误,但使用 gradle 编译工作正常

    我已经在 Android Studio 中设置了我的项目以使用方线库 按照这个问题 Build gt Compile Project工作正常 2 03 10 PM Compilation completed successfully in
  • node-gyp 重建 - 错误:`gyp` 失败,退出代码:1

    我在 CentOS 6 8 上进行 node gyp 重建时遇到错误 File usr local lib node modules node gyp gyp pylib gyp input py line 295 in LoadBuild
  • RestSharp 压缩请求,同时对服务器进行休息调用

    我正在我的 C 客户端中使用用 java 编写的 REST API 我将大量数据传输到服务器 并且使用 RestSharp dll 来进行休息调用 我要做的是构造一个对象并将其直接添加到 RestSharp 请求对象的主体中 并为其提及 n
  • URL 屏蔽不适用于省略尾部斜杠的 URL

    类似的问题还有很多 但似乎没有一个完全适合我 我正在从 WordPress 网站迁移到简单的静态网站 但是 我目前被禁止删除托管在public html完全文件夹 直到证明所有内容都可以在静态站点上使用 我已将静态站点部署到我的子子文件夹中
  • JavaScript 仅接受 0 到 255 范围内的数字

    我的要求是验证 IP 范围 我需要创建一个 JavaScript 函数来仅接受数字 并且它必须只允许在 0 到 255 范围内 如果输入的任何内容超出该范围 它必须发出警报消息 我目前正在使用以下功能
  • 确定路径是否作为 Rails 控制器中的路由存在

    我想知道是否可以将任意路径映射到路线 recognize request for 完成了我想要的 但我无法让它在我的控制器中工作 具体来说 我怎样才能执行认可的请求或者从我的控制器完成相同任务的东西 对于 Rails 3 调用是 Rails
  • “applicationDidBecomeActive”之后调用什么方法?

    这是我的第一个问题 因为我在开发第一个 iOS 应用程序时遇到问题 它是数千个手电筒应用程序之一 但我正在尝试为其添加尽可能多的功能 其中之一是在应用程序进入后台或终止时保存应用程序的状态 进入前台 iOS 4 或更高版本 或重新启动后 我
  • AngularJS 找不到 XSRF-TOKEN cookie

    我正在将 Angular 1 0 4 与 ASP NET MVC4 Web API 项目一起使用 我试图利用 Angular 的 CSRF 保护 但没有成功 我可以看到我正在传递一个名为 XSRF TOKEN 的 cookie 但是当 An
  • 如何通过单击单元格中的按钮来删除tableView中的单元格?使用核心数据

    我创建了一个待办事项列表应用程序 我使用 tableView 来列出任务 我对单元格使用自定义类 在单元格 contentView 中 我有一个标签和一个完成按钮 我已在代码中成功实现了 完成 按钮单击操作 效果很好 Problem 当我单
  • 如何将现有项目导入到Eclipse中的Workspace中?

    我正在尝试按照 Eclipse 说明创建 Hello World SWT 应用程序 我有以下指示 从主目录导入 SWT 项目 通过 文件 gt 导入 菜单 然后选择 将现有项目放入工作区 指定您的存档文件 下载并单击完成 这会 创建 org
  • .htaccess - 隐藏 URL 中的目录,同时保留其他文件

    我开发了一个巨大的工具工作室 每个工具在 tools 文件夹中都有自己的目录 所以如果你有一个名为example URL 为 studio dir tools example 我试图从 URL 中隐藏 tools 目录 同时确保 tools