mod_rewrite强制内部重定向

用户名

我的目标是减少应用程序签名的可见性。这不是默默无闻的安全措施,而只是深度的表面防御,因此,乍一看,攻击者无法分辨出它是否是静态站点。(还具有外观美感;即使应用程序在正常操作中永远看不见,也可以隐藏应用程序详细信息,这让用户感觉“更干净”)。因此,我想拒绝访问某些目录而不显示它们的存在,因此如果用户请求不存在的页面,我必须给出我的应用程序给出的完全相同的404响应。

在一个.htaccess文件中,我具有以下内容:

RewriteEngine on
RewriteCond "%{REQUEST_FILENAME}" "!-f"
RewriteCond "%{REQUEST_FILENAME}" "!-d"
RewriteRule "^(.*)" "index.php?page=$1"
RewriteRule "^(secret_dir1|secret_dir2)(/.*)?$" "index.php?page=404"

其中index.php根据“ page” GET参数的值呈现漂亮的漂亮网页;如果“页面”与应用程序级别的页面不对应,或者“页面”设置为404,则脚本将渲染一个漂亮的404页面,其中包含适当的标题和所有内容。

这是问题发生的地方。“应用程序级” 404按预期工作;呈现404页面。但是,如果用户请求mydomain.com/dir_i_am_trying_to_hide,他们将获得301重定向到mydomain.com/dir_i_am_trying_to_hide/?page=404:外部重定向,而不是内部重写。

为什么发送外部重定向而不是仅重写url?我应该如何正确避免这种情况?除此以外,是否有办法强制服务器执行内部重写(Apache文档似乎表明您可以将RewriteRule强制设置为外部,但不能强制这样做)

用户名

原来我的重写规则没有引起外部重定向;阿帕奇的DirectorySlash是;我会查询hostname/secret_dir1,并将重定向发送到hostname/secret_dir1/

我不确定为什么查询字符串被更改了,但是添加了对其进行了DirectorySlash off修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mod_rewrite()内部重定向过多

来自分类Dev

mod_rewrite()内部重定向过多

来自分类Dev

使用mod_rewrite重定向图像

来自分类Dev

在mod_rewrite之后重定向URL?

来自分类Dev

Mod_rewrite无法正确重定向

来自分类Dev

Mod_rewrite重定向网址问题

来自分类Dev

简单的mod_rewrite重定向

来自分类Dev

使用mod_rewrite的重定向循环

来自分类Dev

使用mod_rewrite重定向循环

来自分类Dev

Mod_rewrite简单重定向

来自分类Dev

Mod_rewrite重定向网址问题

来自分类Dev

简单的mod_rewrite重定向

来自分类Dev

mod_rewrite不会重定向到我的内部网址

来自分类Dev

无法忽略带有NS标志的mod_rewrite内部重定向

来自分类Dev

如何使用重定向和mod_rewrite

来自分类Dev

Mod_rewrite:重定向到哈希URL?

来自分类Dev

.htaccess mod_rewrite重定向不起作用

来自分类Dev

使用mod_rewrite重定向.dev域

来自分类Dev

Mod_rewrite重定向到特定文件

来自分类Dev

如何使mod_rewrite从子域重定向到querystring?

来自分类Dev

mod_rewrite重定向循环/破坏了我的网站

来自分类Dev

停止影响重定向规则的Apache mod_rewrite

来自分类Dev

如果找不到文件,则mod_rewrite重定向URL

来自分类Dev

mod_rewrite:动态重定向和目录阻止

来自分类Dev

htaccess:如何重定向然后使用mod_rewrite

来自分类Dev

www域的mod_rewrite重定向问题

来自分类Dev

mod_rewrite和重定向导致循环

来自分类Dev

使用mod_rewrite仅重定向主页

来自分类Dev

重定向时在mod_rewrite中使用变量