【问题标题】:How set sub directories/folders in public_html 403 forbidden如何在 public_html 403 禁止中设置子目录/文件夹
【发布时间】:2017-12-14 23:05:24
【问题描述】:

我将 Codeigniter 与 Hostgator 共享主机一起使用。

如何在 public_html 403 中设置子目录/文件夹禁止?但此文件夹中的文件是可访问的。

示例:

/public_html/this_forlder_forbidden/this-file-not-forbidden.ext

示例 1

/public_html/js/jquery.js

/public_html/css/style.css

以下是我在 /public_html/ 目录中的 .htaccess 文件代码。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
SetEnvIf Origin "http(s)?://(.+\.)?mydomain\.com(:\d{1,5})?$" CORS=$0

Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS
Header merge  Vary "Origin"

【问题讨论】:

标签: php .htaccess codeigniter cpanel shared-hosting


【解决方案1】:

在禁止从浏览器访问的目录中: 放置一个 .htaccess 文件,其中包含:

order deny,allow
deny from all

但如果可能,请将这些目录移到文档根目录之外

附录 我忘了:对于 Apache 2.4,语法是

Require all denied

而不是旧 Apache 版本的 2 行

【讨论】:

  • 我会试试的。将这 2 行代码放在哪里?在我当前的 .htaccess 代码的末尾?
  • 通常只有这两行。您将它们放在您不希望任何人进入的目录中的 .htaccess 文件中。所以 rewriterule 不会以任何方式到位
  • 非常感谢@Ivo P,简单的解决方案,像魅力一样工作!
【解决方案2】:

对于您想要的东西,也许有更好的方法。将applicationsystem 目录移到public_html 之外,然后在public_html/index.php 文件中为这些目录设置新路径:

$system_path = '../system'; // line 93

$application_folder = '../application'; // line 110

【讨论】:

    【解决方案3】:

    转到 Codeigniter/应用程序文件夹
    复制 index.html
    并将其粘贴到 /public_html

    当有人试图打开 /public_html 时 index.html 会自动触发。
    index.html 显示“目录访问被禁止。”

    【讨论】:

    • 其他方式....因为当文件可以访问时,即 /js/jquery.js 然后它显示...我希望它只能在 html 页面中访问或根据要求而不是直接访问
    • 你的意思是把 index.html 文件移动到 public_html 目录吗?
    • 我试过了。结果是我的索引/主页(baseurl.com)被禁止。但是 public_html 中的文件夹仍然可供公共使用(例如:baseurl.com/js/ 或 baseurl.com/css/)
    • 不,只是复制和粘贴。 .htaccess 也一样。但是 .htaccess 也会阻止所有文件
    • 我已经这样做了,结果仍然和我在回复中提到的一样。在我的 /public_html/ 中也已经有 .htaccess,然后在我的 /application/ 中没有 .htaccess @KundanPrasad
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2016-08-28
    • 2013-10-17
    • 1970-01-01
    • 2016-09-23
    • 2021-02-05
    相关资源
    最近更新 更多