内部重定向Apache文件夹

时间:2018-10-02 08:43:29

标签: apache http url-rewriting

我正在为确实对https://myadomain.com/save的服务器执行卷曲请求(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上为我的index.php脚本提供200状态代码?

谢谢

1 个答案:

答案 0 :(得分: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]