带有自定义htaccess文件的HostGator上的PHP Slim3
我正试图在HostGator帐户上部署一个带有自定义htaccess文件的HostGator上的PHP Slim3,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正试图在HostGator帐户上部署一个SlimPHP框架 我的项目源代码如下所示: project/ ├── .htaccess ├── src/ │ ├── classes/ │ ├── vendor/ │ ├── composer.json │ ├── routes.php │ ├── settings.php │ └── index.php └── public/ ├── index.php └── .htaccess 并且以相同的方式部署,其
Slim
PHP框架
我的项目源代码如下所示:
project/
├── .htaccess
├── src/
│ ├── classes/
│ ├── vendor/
│ ├── composer.json
│ ├── routes.php
│ ├── settings.php
│ └── index.php
└── public/
├── index.php
└── .htaccess
并且以相同的方式部署,其中项目
文件夹是我的HostGator帐户上的最高级别文件夹,其中包含public_html
等内容
之后,我将一个htaccess
添加到public
中(逐字逐句)
同时,我还在某个地方将其添加到根htaccess
文件中(该文件还包括一个使用PHP7的设置,该设置有效..)
已将
public
移动到public\u html
主htaccess
文件恢复为正常状态(即无)
公共htaccess
文件
重新启动发动机
#重写基/
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则。index.php[QSA,L]
你是否100%确定你的主机启用了mod_rewrite
功能?是的,你的应用程序在本地运行吗?你能把index.php
文件的代码发布到你的public
文件夹中吗?我已经把它添加到了问题中,而且我没有本地测试,所以你从来没有测试过你的应用程序或看到它在工作……那么我的第一个假设是你的代码不工作,你的问题与你的.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
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();