Htaccess屏蔽真实文件夹名称

时间:2018-03-17 03:37:28

标签: .htaccess mod-rewrite url-rewriting

我有一个问题需要建议。

我想使用htaccess规则在运行joomla 3.8的网站中屏蔽文件夹名称,例如,如果我在谷歌浏览器中打开控制台并访问选项卡来源我将看到我的网站的结构与以下文件夹: 模板/ temlate_name /

我设法使用以下规则部分掩盖了文件夹名称:

RewriteCond %{THE_REQUEST} ^GET\ /real_folder_name/

RewriteRule ^real_folder_name/(.*)$ fake_folder_name/$1 [R,L]

RewriteRule ^fake_folder_name/(.*)$ real_folder_name/$1

当我通过chrome

访问开发者控制台来源部分时,这确实改变了文件夹名称而没有破坏网站

但如果我打开页面的源代码,我仍然会看到真正的网址示例

 <link href="/cache/com_templates/templates/ra_template/5791a87f26badb650e42f3790edac52d.css" rel="stylesheet" type="text/css" />
<link href="/media/mod_languages/css/template.css?236ca17ae906371918cc54bf64db39c8" />

如果我想隐藏例如第二个文件夹hidden_​​folder / still_visible_folder

,此方法也不起作用

我怎么做错了如何显示对源代码的更改呢?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

  

但如果我打开页面的源代码,我仍然会看到真正的网址示例

来源可能会照原样。

  

我怎么做错了如何显示对源代码的更改呢?

实际上,接收请求的服务器首先检查请求是否与现有文件匹配。

如果是这样,Web服务器将文件内容发送回浏览器,否则,服务器将向浏览器返回错误消息。

在这两个步骤之间,您可以通过将所有错误请求发送到自定义文件来进行特定配置,例如处理错误请求,在这种情况下,自定义文件内容将是一个可以返回浏览器的内容。

因此,当您使用伪文件更改现有文件但在内部将伪文件重定向到原始路径时,这将在向浏览器发回响应之前发生,并且源代码中不会发生任何事情,那么原始文件的内容将返回到浏览器。