首页 > 解决方案 > 在反向代理 Laravel App 中不正确路由

问题描述

我已经配置了一个 Apache 服务器,它使用反向代理来显示一个在 laravel 中开发并安装在另一个 apache web 服务器上的 web 应用程序。假设该域myapp.app 工作正常,但是当我单击子域时,假设myapp.app/register浏览器返回myapp.appregister/.

目前我已经配置了我的网络服务器,如下所示:

  <IfModule mod_ssl.c>
<VirtualHost *:443>
             SSLEngine On
             ServerName myapp.app
             <Proxy *>
                Order deny,allow
                Allow from all
             </Proxy>
             <Location "/">
                RequestHeader set X-Forwarded-Proto https
                RequestHeader set X-Forwarded-Ssl on
                RequestHeader set X-Url-Scheme https
             </Location>
             ProxyPreserveHost on
             ProxyPass         /        http://172.31.0.234/
             ProxyPassReverse  /        http://172.31.0.234/
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.redes-erdica.tech
SSLCertificateFile /***.pem
SSLCertificateKeyFile /***.pem
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
             ServerName myapp.app
             Redirect permanent / https://myapp.app/
</VirtualHost>
</IfModule>

并且内部 apache 服务器的配置文件除了 laravel 项目的位置之外没有其他配置。发生的一些奇怪的事件是,如果我手动输入myapp.app/register它会将我发送到应该在的位置,那么为什么当我单击注册按钮时浏览器会直接向我发送错误的信息?

此外,本地服务器中的应用程序正常工作。

标签: laravelapachewebreverse-proxy

解决方案


您需要修改位于 /etc/apache2 文件夹中的主配置文件,您需要更改 AllowOveride 部分的值,该部分指向您的应用程序所在的文件夹,并将其更改如下:

    <Directory [your_app_folder]
       Options ...
       AllowOverride All
       Require ...
    </Directory>

推荐阅读