防止 apache 重写 URL

防止 apache 重写 URL

我正在尝试将网站迁移到 Docker。我已遵循了许多指南,现在快完成了。

我正在使用 php:7.2.7-fpm-alpine3.7 图像将 PHP 与 Apache 分离。

我的网站位于包含 Apache Docker 容器的本地文件夹 /var/www/html/app 中。

我的 Apache conf 文件如下所示:

服务器名称 localhost

LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so

<VirtualHost *:80>
    # Proxy .php requests to port 9000 of the php-fpm container
    ProxyPassMatch ^/(.*\.(php|inc)(/.*)?)$ fcgi://php:9000/var/www/html/$1
    DocumentRoot /var/www/html/
    <Directory /var/www/html/>
        DirectoryIndex index.php
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>

    # Send apache logs to stdout and stderr
    CustomLog /proc/self/fd/1 common
    ErrorLog /proc/self/fd/2
</VirtualHost>

我的问题是 Apache 似乎在某些时候重写/编辑 URL,我不知道为什么,例如,如果我尝试访问http://localhost/app/htdocs/install.php我将看到对 /app/dist/* 的 GET 请求日志(位置应该是 /app/htdocs/dist/*,因此我得到了 404)。安装应该会导致http://localhost/app/htdocs/admin/install_db.php但浏览器却转到http://localhost/app/admin/install_db.php

我认为这是一个重写问题,因为主机上具有标准 *AMP 堆栈的相同站点代码可以毫无问题地运行。

非常感谢!

答案1

我发现一个单独的特定情况的配置文件存在问题,我没有考虑到。

相关内容