apache 包含索引文件的文件夹的父目录中的索引文件

ylamdve6  于 2023-11-21  发布在  Apache
关注(0)|答案(1)|浏览(142)

目录如下:htdocs

  • 公共
  • index.php
  • welcome.php

“public”文件夹被设置为文档根目录,因此传入的请求会转到index.php。index.php会检查用户是否经过身份验证,如果没有,它会重定向以将其发送到欢迎页面。

header("Location: welcome.php");

字符串
然而,我一直得到一个404错误,尽管URL显示正确的文件路径。
有什么想法吗?这是我试过的。

header("Location: /welcome.php");
header("Location: ./welcome.php");
header("Location: ../welcome.php");


.htaccess

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]


^上面创建了太多的重定向。
将index.php文件放在与welcome.php相同的文件夹中可以正常工作,但我试图组织我的Web应用程序,如果我必须将所有内容都保存在index.php文件中或以下,则无法做到这一点。

j8ag8udp

j8ag8udp1#

似乎您正在使用Apache作为Web服务器。您尝试做的事情是不可能的。如果Apache中Web应用程序的文档根目录设置为public/目录,那么您将只能从该目录中提供文件。由于welcome.phppublic/处于同一级别,而不是在public/中,你不能提供该文件,Apache正在正确地为你提供404错误。
相反,考虑调整你的方法,

- public/ (foo.com)
-- index.php
-- secure/
--- index.php
-- welcome.php

字符串
当用户登陆foo.com要求他们登录时,一旦他们登录,就会将他们重定向到foo.com/secure/index.php。如果有人试图访问foo.com/secure/index.php并且他们没有经过身份验证,则使用header("Location: ../welcome.php");将他们标头返回到welcome.php或index.php

相关问题