mod重写隐藏目录结构

时间:2015-10-11 06:06:35

标签: regex apache .htaccess mod-rewrite

我将根目录中的所有文件/文件夹移动到文件夹v1.0并使用以下内容:

RewriteCond $1 !^v1.0/
RewriteRule ^/?(.*) v1.0/$1 [L]

这样可行,网站现在可以访问v1.0内的文件。问题是直接访问文件夹。

这:http://example.com/includes(包括存在)

将网址转发给

http://example.com/v1.0/includes并显示此错误:

Forbidden

You don't have permission to access /v1.0/includes/ on this server.

如何在URL和错误消息中不公开文件夹结构?

1 个答案:

答案 0 :(得分:0)

由于你标记了.htaccess,我认为你的.htaccess中有你的规则。在这种情况下,RewriteRule的第一个参数将匹配一个保证不以斜杠开头的url,因为它是公共前缀的一部分。

我认为最简单的解决方案是为禁止和未找到的错误添加自定义错误页面。有关详细信息,请参阅ErrorDocument指令。

ErrorDocument 403 /v1.0/errordocuments/403.php
ErrorDocument 404 /v1.0/errordocuments/404.php

然后使用您想要显示的相关信息制作这些页面。