我是苗条的框架新手。目前,在我现有的网络服务器上(在centos 7上),我正在运行其他基于php的应用程序。所以目前我的目录结构是这样的。
var/www/html
phpapp1
phpapp2
apislim
我创建的apislim文件夹用于苗条框架。以下是我执行的确切步骤:1.作曲者create-project slim / slim-skeleton
2.我将slim-skeleton文件夹重命名为apislim 3.我确定所有者是apache chown -R apache:apache apislim 4.在httpd.conf,我确保将此AllowOverride启用为All
<Directory "/var/www">
AllowOverride All
# Allow open access:
Require all granted
Options -Indexes
</Directory>
同样在下面我启用了全部
<Directory "/var/www/html">
Options -Indexes -FollowSymLinks
AllowOverride All
</Directory>
在apislim / public文件夹中,我有以下.htaccess文件。
RewriteEngine开
RewriteCond%{REQUEST_URI} :: $ 1 ^(/.+)/(。):: \ 2 $ RewriteRule ^(。)-[E = BASE:%1]
RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(。*)$%{ENV:BASE} index.php [QSA,L]
我在公用文件夹中也有index.php文件,该文件也链接到路由的src和主文件夹apislim,我创建了另一个.htaccess文件并添加了它。
RewriteRule上的RewriteEngine ^ $ public / [L] RewriteRule(。*)public / $ 1 [L]
现在的问题是,我希望现有的应用程序可以与基于苗条框架的rest api一起使用。所以当我去这个链接
http://*.*.*.*/apislim/
http://*.*.*.*/apislim/public/
http://*.*.*.*/apislim/public/index.php
它们都不起作用都禁止我使用403。然后我检查错误日志,它显示有关FollowSymLinks的错误,因此我将Options -Indexes + FollowSymLinks添加到
因此,我现在得到的下一个错误是500间隔服务器错误。
要使Slim 3应用程序在子目录中工作,必须执行以下步骤。
目录结构:
public/
Web服务器文件(DocumentRoot)
.htaccess
用于前端控制器的Apache重定向规则index.php
前置控制器.htaccess
内部重定向到public /目录文件内容.htaccess
:
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
文件内容public/.htaccess
:
# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
将此容器条目添加到文件中dependencies.php
:
// Activating routes in a subfolder
$container['environment'] = function () {
$scriptName = $_SERVER['SCRIPT_NAME'];
$_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
return new Slim\Http\Environment($_SERVER);
};
编辑:在Slim 4中,您应该使用该$app->setBasePath($basePath);
方法。更多细节
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句