虚拟主机别名加载/重定向"/myapp/"但没有斜杠"/myapp"



我有一个VirtualHost Alias路径,它使用"/myapp/"而不是"/myapp"加载/重定向。

我的服务器信息:

OS: Red Hat Enterprise Linux Server 7.6 (Maipo)
Kernel: Linux 3.10.*

我的/etc/httpd/conf.d/main.conf文件:

<VirtualHost *:80>
Alias /myapp /m009/www/myapp-source
<Directory /m009/www/myapp-source >
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

如果我访问mydomain.com/myapp/(注意额外的斜杠(,我会得到:

Here's the app!

如果我去mydomain.com/myapp(没有额外的斜杠(,我会得到:

- takes a long time to load
- redirects to mydomain:9080/myapp
- says "site can’t be reached"

我不确定这是正确的答案,因为我不知道所有信息。

您正在9080端口上运行应用程序吗。将ProxyPass /myapp !放入虚拟主机有帮助吗?

如果没有,很抱歉。

Alias用于精确匹配路径,因此有三个选项:

  1. 添加第二个带有斜杠的Alias语句。这可能很糟糕,因为同一资源将有多个路径。例如Alias /myapp/ /m009/www/myapp-source
  2. 使用AliasMatch可以匹配带有或不带有尾部斜线的路径。例如。AliasMatch "/myapp/?" "/m009/www/myapp-source"
  3. [推荐]重写请求以删除尾部斜杠。注意,这可能会导致循环,具体取决于Apache安装的设置方式。首先检查DirectorySlash是打开还是关闭
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^(.*)/+$ $1 [R=301,L]
Alias /myapp /m009/www/myapp-source
<Directory /m009/www/myapp-source >
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

最新更新