【问题标题】:Slim routes not working on serverSlim 路由在服务器上不起作用
【发布时间】:2020-05-21 04:19:06
【问题描述】:

我正在 php slim 框架中创建 REST API,并且我使用它很好。本地一切都运行完美,但我无法在线运行它。我有来自大学的服务器,那里有很多学生项目,所以通往我的休息 api 的路线是:

/var/www/projects/myProject/bpsql

在 bpsql 文件夹中有包含 composer.json 文件的 public、vendor 和 app 文件夹。在我的公共文件中,有一个导致麻烦的 htaccess 文件(我认为)。该文件的外观如何,您认为我应该对此进行更改吗:

RewriteEngine On

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

我尝试添加行RewriteBase projects/myproject/bpsql/public,但没有任何效果。

任何帮助将不胜感激!

编辑:

apache modules on server got by `print_r(apache_get_modules());



     Array
(
    [0] => core
    [1] => mod_log_config
    [2] => mod_logio
    [3] => mod_version
    [4] => prefork
    [5] => http_core
    [6] => mod_so
    [7] => mod_alias
    [8] => mod_auth_basic
    [9] => mod_authn_file
    [10] => mod_authz_default
    [11] => mod_authz_groupfile
    [12] => mod_authz_host
    [13] => mod_authz_user
    [14] => mod_autoindex
    [15] => mod_cgi
    [16] => mod_deflate
    [17] => mod_dir
    [18] => mod_env
    [19] => mod_mime
    [20] => mod_negotiation
    [21] => mod_php5
    [22] => mod_reqtimeout
    [23] => mod_rewrite
    [24] => mod_setenvif
    [25] => mod_ssl
    [26] => mod_status
)
/var/www    //echo getenv("DOCUMENT_ROOT") ;

【问题讨论】:

  • 你用的是什么版本的 Slim?
  • 我目前的版本是2.6。你觉得我应该更新吗?
  • 你上网的错误是什么?
  • 没有错误,只是不识别api甚至slim,只是:在此服务器上找不到请求的URL /projects/myproject/bpsql/public/questions/7。 Apache/2.2.22 (Debian) 服务器在 xxxx.xxx.hr 端口 80
  • 你可以看看here

标签: php .htaccess slim


【解决方案1】:

好的,解决了这个问题,所以如果以后有人遇到同样的问题,这已经为我解决了:

  1. 在 apache 中启用重写模块(Martin 的回答)
  2. 在 httpd conf 文件中,我将 AllowOverRide None 更改为 AllowOverride All

特别感谢 @David Pastore 在解决问题方面提供的所有帮助和帮助。

【讨论】:

    【解决方案2】:

    我猜你是在 Linux 上,但如果是这样的话。看来您没有启用 mod 重写。因此,以下内容可能会有所帮助。

    a2enmod rewrite
    service apache2 restart
    

    但为了更轻松地修复错误,请依赖 https://*.com/help/mcve 以及有关设置和/或日志的更多信息。

    【讨论】:

      最近更新 更多