Apache 仅在根目录中提供 index.php

问题描述 投票:0回答:1

我在浏览器中提供 php 文件时遇到问题。我正在使用位于

/var/www/html/capstone
的目录。我已启用
mod_rewrite
并将
DocumentRoute
设置为指定目录。
.htaccess
包含
Rewrite On
RewriteCond %{REQUEST_FILENAME} !-d

所有文件和目录均归我所有,目录为

755
,文件为
644
。尝试直接访问文件时出现 500 错误
localhost/controllers/<filename>.php

我已将

php_flag display_errors 1
添加到
.htaccess
文件中,但当我尝试在浏览器中导航到
localhost/controllers/<filename>.php
时,没有显示错误。我的错误日志是这样的

[Fri Feb 09 11:51:11.319674 2024] [php:warn] [pid 15444] [client 127.0.0.1:60550] PHP 警告: require(views/home.view.php): 无法打开流: 没有这样的/var/www/html/capstone/controllers/index.php 第 2 行中的文件或目录
[Fri Feb 09 11:51:11.319736 2024] [php:error] [pid 15444] [client 127.0.0.1:60550] PHP 致命错误:未捕获错误:无法打开所需的“views/home.view.php”(include_path ='.:/usr/share/php') 在 /var/www/html/capstone/controllers/index.php:2 堆栈跟踪: #0 {主要} 扔在 /var/www/html/capstone/controllers/index.php 第 2 行
[Fri Feb 09 11:51:20.145142 2024] [php:error] [pid 15445] [client 127.0.0.1:60552] PHP 致命错误:未捕获错误:调用 /var/www/html 中未定义的函数 dd() /capstone/controllers/signup.php:2 堆栈跟踪: #0 {主要} 扔在 /var/www/html/capstone/controllers/signup.php 第 2 行

Access.log是这个

127.0.0.1 - - [09/Feb/2024:12:07:14 -0500]“GET / HTTP/1.1”200 3081“-”“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,例如壁虎)Chrome/121.0.0.0 Safari/537.36"
127.0.0.1 - - [09/Feb/2024:12:07:20 -0500]“GET /signup HTTP/1.1”404 488“http://localhost/”“Mozilla/5.0(X11;Linux x86_64)AppleWebKit /537.36(KHTML,如 Gecko)Chrome/121.0.0.0 Safari/537.36"
127.0.0.1 - - [2024年2月9日:12:08:12 -0500]“-”408 0“-”“-”

所以看起来

/
正在获取 200 状态代码,但所有其他路由都会获取 404。

更新:我确认路由器文件正确地从控制器目录中获取文件。

php apache2
1个回答
0
投票

您不需要将完整的文件地址放在“/var/www/html/capstone/controllers/index.php”中,“localhost/captstone/controllers”和“index.php”或“localhost/captstone”就足够了例如 /controllers/”。

© www.soinside.com 2019 - 2024. All rights reserved.