为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Apache 403错误用作Htacess的路由技术

如何将Apache 403错误用作Htacess的路由技术

PHP
呼如林 2021-05-07 13:15:01
我有一个具有此目录结构的简单php Web应用程序.├── custom_403.html├── custom_404.html├── home│   └── home.php├── .htaccess├── index.php├── login│   └── login.php├── public│   ├── bootstrap│   ├── css│   ├── error_pages│   ├── fontawesome│   ├── .htaccess│   └── js├── signup│   └── signup.php├── test.php我制作了一个.htacess基本上像这样的文件ErrorDocument 404 /public/error_pages/404.phpErrorDocument 500 /public/error_pages/500.phpErrorDocument 403 /index.php当我输入类似的内容时http://localhost/login/,应该会给我一个403 Forbidden错误,因为目录login存在但没有文件index.php。根据我.htacess的index.php看法,它应该提供默认index.php文件。我利用上的优势使用jquery从地址栏的指定路径加载文件。我搜索window.location.pathname从该路径加载具有resolveUrl()功能的相应文件。这意味着,如果刷新页面,http://localhost/login/将加载带有类似jquery的路径的页面login.php。这工作正常,除非我在apache日志中收到如下所示的错误AH01276:无法提供目录/ var / www / html / test / login /:找不到匹配的DirectoryIndex(index.php,index.html,index.cgi,index.pl,index.xhtml,index.htm)和服务器- Options指令禁止生成的目录索引当我尝试通过改变文件名来解决这个问题login.php signup.php etc,以index.php我得到服务的那些文件回,因为他们确实存在,这意味着我不会得到403错误。我尝试拒绝访问我中的这些特定文件,.htaccess但随后包括jquery.load()函数在内的所有内容均被拒绝。我的问题是如何有效地执行我的工作而没有apache错误。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您的输入.htaccess是错误的,您正在使用ErrorDocument 403来加载文件index.php,(ErrorDocument通常用于自定义错误页面,而不是用于加载普通资源),您希望Forbidden在尝试加载时遇到问题,login/因为此文件夹没有index.php文件,但我怀疑您有在您VirtualHost的选项中Indexes,此指令加载文件夹内容,但不会403出错。


我VirtualHost的测试目的是:


<VirtualHost localhost-test:80>

  ServerName localhost-test

  ServerAlias localhost-test

  ErrorLog "logs/localhost-test-error.log"

  TransferLog "logs/localhost-test-access.log"

  DocumentRoot "D:/Web/test"

    <Directory />

      Require all granted

      Options FollowSymLinks Includes ExecCGI

      AllowOverride All

    </Directory>

</VirtualHost>

如果Indexes从中删除,则VirtualHost可以看到Forbidden错误自定义页面。你应该有:


ErrorDocument 404 /public/error_pages/404.php

ErrorDocument 500 /public/error_pages/500.php

ErrorDocument 403 /public/error_pages/403.php

现在,如果您尝试加载的文件夹中/login/没有index.php文件,则应该出现一个Forbidden 403带有自定义页面错误的错误,但同时使用JQuery可以加载该login.php文件。


我希望这有帮助。


查看完整回答
反对 回复 2021-05-28
  • 1 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信