繁体   English   中英

具有自定义htaccess文件的HostGator上的PHP Slim3

[英]PHP Slim3 on HostGator with custom htaccess file

我正在尝试在HostGator帐户上部署Slim PHP框架。

我的项目源看起来像这样:

project/
├── .htaccess
├── src/
│   ├── classes/
│   ├── vendor/
│   ├── composer.json
│   ├── routes.php
│   ├── settings.php
│   └── index.php
└── public/
    ├── index.php
    └── .htaccess

并且以相同的方式部署,其中project文件夹是HostGator帐户上最高级别的文件夹,而public_html和其他内容则在其中。

在学习完本教程之后,我将htaccess这样添加到了public (逐词)

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

以及在我将其添加到htaccess根文件的过程中的某个位置(它也包含使用PHP7的设置,并且可以正常工作..)

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /
   RewriteRule ^$ public/     [L]
   RewriteRule (.*) public/$1 [L]
</IfModule>

当我尝试使用这些新的htaccess文件访问站点时,出现500 Internal Server Error

显然我的htaccess是错误的,我只是不知道什么是错误的。 我想应该发生的是任何请求都应该先发送到public/index.phpSlim和我自己将处理路由。


公共/ index.php文件

require __DIR__ . '/../src/vendor/autoload.php';
require __DIR__ . '/../src/dependencies.php';
require __DIR__ . '/../src/middleware.php';
require __DIR__ . '/../src/routes.php';
$settings = require __DIR__ . '/../src/settings.php';

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

// require custom classesw
spl_autoload_register(function ($classname) {
    require ("../src/classes/" . $classname . ".php");
});

session_start();

$app = new \Slim\App($settings);

$container = $app->getContainer();
$container['logger'] = function($c) {
    $logger = new \Monolog\Logger('my_logger');
    $file_handler = new \Monolog\Handler\StreamHandler("../src/logs/app.log");
    $logger->pushHandler($file_handler);
    return $logger;
};



$app->get('/', function (Request $request, Response $response) {
    $response->getBody()->write("Hello");
    return $response;
});
$app->run();

public移至public_html

htaccess主文件恢复为正常状态(也称为无)。

htaccess公共文件

<IfModule mod_rewrite.c> RewriteEngine on #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php [QSA,L] </IfModule>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM