【问题标题】:Redirect Apache Folder internally在内部重定向 Apache 文件夹
【发布时间】:2019-03-07 09:02:01
【问题描述】:

我正在为在https://myadomain.com/save 向我的服务器执行 curl 请求 (POST) 的应用程序构建 API 接口。 我的脚本位于https://myadomain.com/save/ 作为index.php。现在的问题是 Apache 服务器正在将目标为 https://myadomain.com/save 的所有请求重定向到 https://myadomain.com/save/(HTTP 301 状态代码),而另一端的 curl 脚本没有遵循这些请求。我无法影响 curl 脚本,但我如何才能实现 Apache 在https://myadomain.com/save 上使用 200 状态代码为我的 index.php 脚本提供服务?

谢谢

【问题讨论】:

  • 请向社区展示您目前所拥有的重写脚本。它有助于了解问题并找到具体的解决方案。
  • 我试过例如:RewriteEngine on RewriteRule "^/save$" "/save/"

标签: apache http url-rewriting


【解决方案1】:

您需要关闭 DirectorySlash,但尾部斜杠相当重要,它的存在是有原因的。

Mod_dir docs:

关闭尾部斜杠重定向可能会导致信息泄露。考虑 mod_autoindex 处于活动状态 (Options +Indexes) 并且 DirectoryIndex 设置为有效资源(例如,index.html)并且没有为该 URL 定义其他特殊处理程序的情况。在这种情况下,带有斜杠的请求将显示 index.html 文件。但不带斜杠的请求将列出目录内容。

如果你想删除目录斜线,你必须确保在内部重写尾部斜线。

DirectorySlash Off

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ /$1/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^save/(.*)$ save/index.php [L]

【讨论】:

  • 我不知道这个。好资料。 +1
猜你喜欢
  • 1970-01-01
  • 2010-11-01
  • 2011-06-16
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2017-06-09
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多