当前位置: 首页 > 知识库问答 >
问题:

我想禁用对目录的访问,但不想使用.htaccess禁用子目录

李昌勋
2023-03-14

我想禁用对目录的访问,但不想使用.htaccess禁用子目录

我已经写了一个重写规则重定向一切到一个子目录(public_html),但它的父仍然是可访问的,如果用户知道网址,我想禁用当前目录的访问,而不是子目录

    # Turn on rewrites.
    RewriteEngine on

    # Only apply to URLs on this domain
    RewriteCond %{HTTP_HOST} ^(www.)?domain.com$

    # Only apply to URLs that aren't already under folder.
    RewriteCond %{REQUEST_URI} !^/folder/

    # Don't apply to URLs that go to existing files or folders.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # Rewrite all those to insert /folder.
    RewriteRule ^(.*)$ /folder/$1

    # Also redirect the root folder.
    RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
    RewriteRule ^(/)?$ folder/index.php [L]

共有1个答案

祖利
2023-03-14

您必须在主服务器配置中使用两个. htaccess文件或两个目录部分(如果您的服务器允许. htaccess文件,第一个解决方案会更容易)。

在你的根中放入一个. htaccess,内容如下:

Allow from none
Deny from all

并将其放入您的public_html文件夹中,其中包含以下内容:

Allow from all

这样,在您的根目录中没有任何内容可以访问,但是您的public\uhtml会覆盖此内容,这样,所有内容都可以访问。

你想要的可以通过在你的根中放入这个来完成:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/public_html/
RewriteRule ^(.*)$ public_html/$1

并将您的原始文件放在public_html中,并对其进行修改,以反映它现在位于public_html文件夹中。我发布的这个配置负责跳过根目录,并假装public_html将是根。

 类似资料:
  • 问题内容: 我正在建立一个允许人们上传文件,html页面等的网站…现在我遇到了问题。我有这样的目录结构: 现在,我想禁用PHP,但是要在/ USERS的目录和子目录中启用服务器端包含 可以做到这一点(以及如何:))?提前致谢。 顺便说一句,我使用WAMP服务器 问题答案: 尝试禁用.htaccess文件中的选项:

  • 我有一个子目录()我想访问的是在我的站点的根文件夹。我看了这里: https://wordpress.stackexchange.com/questions/20152/cannot-access-non-wordpress-subdirectories-as-wordpress-overrides-them-with-a-40 我已经尝试了解决方案,但没有任何效果。 我还尝试将一个单独的文件添加

  • 本文向大家介绍Apache设置目录禁止访问,包括了Apache设置目录禁止访问的使用技巧和注意事项,需要的朋友参考一下 默认apache在当前目录下没有index.html入口就会显示目录。让目录暴露在外面是非常危险的事,如下操作禁止apache显示目录: 进入apache的配置文件 httpd.conf 找到: Options Indexes FollowSymLinks 修改为: Option

  • 我正在使用springboot,我正在使用执行器和prometheus暴露度量。我想暴露“信息”、“健康”、“度量”、“prometheus”、“关闭”等等。但是即使我指定应用程序属性,我看到的是甚至根“/执行器”也暴露了。 我想禁用根部执行器,只有我之前说过的5个成员。 有没有办法不只暴露/执行器endpoint?我也尝试过在应用程序属性中这样做: 这是外露致动器的列表:

  • 本文向大家介绍sitecore 访问项目时禁用权限检查,包括了sitecore 访问项目时禁用权限检查的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我将Jetty(版本7.4.5.v20110725)嵌入到Java应用程序中。我正在使用Jetty的WebAppContext在./webapps/jsp/中提供JSP页面,但是如果我访问localhost:8080 / jsp /,则会得到Jetty的目录列表,其中包含./webapps/jsp/的全部内容。我尝试在WebAppContext上将dirAllowed参数设置为fals