【问题标题】:Getting 500 error after adding '/' in the URL path在 URL 路径中添加“/”后出现 500 错误
【发布时间】: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


【解决方案1】:

解决了!

使用永久重定向从 URL 中删除尾部斜杠

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

将此添加到您的 .htaccess 文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多