【发布时间】:2020-05-29 04:39:57
【问题描述】:
我有一个用 PHP 编写并使用 apache ubuntu 服务器的网络应用程序。
每当我尝试访问任何最后带有“/”的 URL 时,它都会显示 500 Internal Error。
例如:“https://webapp.com/features” - 工作正常
“https://webapp.com/features/” - 引发 500 错误
这是我的 .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^([a-zA-Z0-9\-\_]+)$ index.php?profile=$1 [NC]
# Return 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
我尝试从 .htaccess 文件中删除一些部分,但仍然无法正常工作。
这和 Apache 配置有关吗?
感谢您的帮助!
【问题讨论】:
-
这能回答你的问题吗? trailing slash gives internal server error
-
http 状态 500 表示“内部服务器错误”。出于安全原因,没有向客户提供任何详细信息。因此,作为操作员,您需要查看该服务器内部以了解实际问题。您有权访问。所以去看看问题是什么,而不是猜测或询问其他谁没有有权访问。你的http服务器写日志文件,一个是错误日志文件。这就是您可以阅读实际问题所在的地方。 如果不监视该文件,您将无法开发或操作网页或服务!
-
@fraggley 实际上不,您引用的答案不回答了这个问题。它显示了一种解决方法,但没有回答“为什么”的问题。
-
@fraggley 谢谢你的评论,我以为我找到了解决方案,但我的 CSS 加载不正确。那么如果用户从 URL 添加斜杠并且不显示 500 错误,有什么方法可以删除斜杠?
标签: php apache .htaccess server