我有一个具有此目录结构的简单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.php
ErrorDocument 500 /public/error_pages/500.php
ErrorDocument 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错误。
慕尼黑的夜晚无繁华