如何隐藏请求的资产';服务Apache错误页时的文件路径?
我们的服务器使用以下重写规则来隐藏图像位置,将如何隐藏请求的资产';服务Apache错误页时的文件路径?,apache,.htaccess,mod-rewrite,permissions,Apache,.htaccess,Mod Rewrite,Permissions,我们的服务器使用以下重写规则来隐藏图像位置,将www.domain.com/media/*定向到www.domain.com/secret/sub/directory/to/images/: RewriteRule ^media/(.*) /secret/sub/directory/to/images/$1 这在提供有效映像时效果很好,但在请求无效的资产URL时,404通知会显示完整的真实文件路径,而不是用户友好的URL。(我也注意到403也会发生这种情况) 例如: Not Found T
www.domain.com/media/*
定向到www.domain.com/secret/sub/directory/to/images/
:
RewriteRule ^media/(.*) /secret/sub/directory/to/images/$1
这在提供有效映像时效果很好,但在请求无效的资产URL时,404通知会显示完整的真实文件路径,而不是用户友好的URL。(我也注意到403也会发生这种情况)
例如:
Not Found
The requested URL /secret/sub/directory/to/images/image.png was not found on this server.
Apache/2.2.22 (Ubuntu) Server at www.domain.com Port 443
如何说服服务器显示面向用户的URL而不是完整的文件路径?请尝试使用以下规则集:
重新编写引擎打开
#如果图像目录中存在请求的文件
#然后像在媒体上一样服务它。
重写cond%{REQUEST_URI}^/media/(.+)[NC]
重写cond%{DOCUMENT_ROOT}/secret/sub/directory/to/images/%1-f
重写规则^/secret/sub/directory/to/images/%1[L]
第一个条件检查我们是否从媒体
请求,如果是,则将该文件名传递给下一个条件,该条件检查我们请求的内容是否确实存在于机密目录中
如果两个条件都通过,则使用对第一个条件的捕获部分的反向引用((.+)
=>%1
)将请求内部重写到机密目录
如果请求的文件在机密目录中不存在,则跳过内部重写,Apache将显示服务器上不存在
/media/non-existence.png
。请尝试使用以下规则集:
重新编写引擎打开
#如果图像目录中存在请求的文件
#然后像在媒体上一样服务它。
重写cond%{REQUEST_URI}^/media/(.+)[NC]
重写cond%{DOCUMENT_ROOT}/secret/sub/directory/to/images/%1-f
重写规则^/secret/sub/directory/to/images/%1[L]
第一个条件检查我们是否从媒体
请求,如果是,则将该文件名传递给下一个条件,该条件检查我们请求的内容是否确实存在于机密目录中
如果两个条件都通过,则使用对第一个条件的捕获部分的反向引用((.+)
=>%1
)将请求内部重写到机密目录
如果请求的文件不存在于机密目录中,则跳过内部重写,Apache将显示服务器上不存在
/media/non-existence.png
。请显示用于完成此操作的规则集。@MikeRockett已编辑。请显示用于完成此操作的规则集。@MikeRockett已编辑。非常感谢。在最后一行中,我不得不将^
更改为^media/(.+)
,但从那以后一切都很好。由于条件的原因,这不重要,但如果它起作用,那么它就起作用了。不客气,太好了,谢谢。在最后一行中,我不得不将^
更改为^media/(.+)
,但从那以后一切都很好。由于条件的原因,这不重要,但如果它起作用,那么它就起作用了。不客气。