apache allowoverride 指向错误的位置

apache allowoverride 指向错误的位置

我安装了一个 Slim 框架来创建 API,并将其定位在

 /opt/modul/www/api
    index.php
    slim/

因此 index.php 是我的主要 API 文件。我想在浏览器中通过以下 URL 访问它本地主机/mo/api

为了启用重写模式,我创建了一个 /opt/modul/www/api/.httacces文件

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
</IfModule>

并放入http.conf

Alias /mo /opt/modul/www

<Directory /opt/modul/www>
        DirectoryIndex index.html index.php
        Order allow,deny
        Allow from all
        AllowOverride All
</Directory>

但是如果我在浏览器中访问 URL localhost/mo/api,我会在 error.log 中看到

File does not exist: /var/www/html/opt

为什么它仍然出现在 /var/www/html 中?我知道,这是 document_root,但别名不会覆盖它吗?

答案1

为了解决这个问题,我RewriteRule根据 ALIAS 指向 index.php 的绝对位置。

RewriteRule ^(.*)$ /mo/api/index.php [QSA,L]

相关内容