gpt4 book ai didi

apache - 设置重定向到特定 url 的 url,无需重写

转载 作者:行者123 更新时间:2023-12-04 15:19:24 26 4
gpt4 key购买 nike

我正在构建一个具有 Multi-Tenancy 结构的 webscheduler,我想要做的是为每个买家分配一个指向我的应用程序的自定义 url。

所以基本上当用户从我这里购买许可证时,我将在我的网络服务器上创建一个自定义 url,如下所示:

http://webserver/foo.scheduler.com/login

哪里 foo是购买许可的用户名, scheduler是 url 的默认部分,另一个有更多买家的例子:
http://webserver/foo.scheduler.com/login
http://webserver/foo2.scheduler.com/login
http://webserver/foo3.scheduler.com/login

基本上有三个买家(我的客户),每个自定义端点都允许我识别正确的数据库凭据,因为在我的逻辑中,每个租户都有一个特定的数据库,用于更多的数据组织。

实际上我的应用程序位于此端点:
http://webserver/scheduler

我想知道是否可以将所有自定义网址指向 http://webserver/scheduler , 无需在浏览器中重写 url,例如当用户转到 http://webserver/foo.scheduler.com/login 时真实的是 http://webserver/scheduler/login ,但用户还是继续看 http://webserver/foo.scheduler.com/login .

怎么能做到这一点?在我的 .htaccess ,在应用程序文件夹的根目录中可用,我有以下内容:
RewriteEngine On

RewriteBase /webscheduler/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

这允许我重写索引的基本路径,并将跟踪分流到特定 Controller 。

最佳答案

很高兴为您提供帮助。

为 *.scheduler.com 获取有效的 SSL 证书。如果你想让它工作,你将需要它。您确定要使用 HTTPS 吗?您的另一个 URL 不是 HTTPS。然后您需要为 *.scheduler.com 设置您的虚拟主机以使用该证书正常工作。 Only having :

<VirtualHost *:443>
ServerAlias *.scheduler.com
DocumentRoot "/var/www/html/progetti/scheduler"
</VirtualHost>

不会有足够的东西。您需要像其他虚拟主机一样在其中设置所有 mod_ssl 内容。您可以只使用该默认 HTTPS 主机而不是添加另一个主机,然后对其进行修改。

首先要做的是让您的主机为 https://*.scheduler.com/工作,然后将其指向正确的位置。

你的端点是什么意思 http://webserver/scheduler ?这不是一个有效的域名。请澄清您的意思,我将用更多信息更新我的答案。代码在同一台服务器上吗?

——

更新

因此,要在没有 SSL 的情况下执行此操作,请将以下内容添加到“000-default.conf”中,在当前存在的内容之后:
<VirtualHost *:80>
ServerAdmin localhost@gmail.com
ServerName www.scheduler.com
ServerAlias *.scheduler.com
UseCanonicalName off
DocumentRoot /var/www/html/progetti/scheduler
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/html/progetti/scheduler>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

——

更新

使 http://webserver/foo.scheduler.com工作并提供/scheduler,将其添加到已经存在的 VirtualHost。不是上面添加的新的,而是顶部的原始的。
RewriteEngine on
RewriteRule ^(/[^./]+\.scheduler\.com)(?:$|/(.*)$) /scheduler/$2

让我知道任何问题。如果你更愿意把它放在你的 .htaccess 中,它需要更新。

关于apache - 设置重定向到特定 url 的 url,无需重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com