【发布时间】:2017-01-20 12:14:17
【问题描述】:
我正在构建一个具有多租户结构的 webscheduler,我正在尝试为每个买家分配一个指向我的应用程序的自定义 url。
所以基本上当用户从我这里购买许可证时,我会在我的网络服务器上创建一个自定义 URL,如下所示:
http://webserver/foo.scheduler.com/login
其中foo 是购买许可证的用户的名称,scheduler 是网址的默认部分,另一个购买者较多的示例:
http://webserver/foo.scheduler.com/login
http://webserver/foo2.scheduler.com/login
http://webserver/foo3.scheduler.com/login
基本上有三个买家(我的客户),每个自定义端点都允许我识别正确的数据库凭据,因为在我的逻辑中每个租户都有一个特定的数据库,用于更多的数据组织。
实际上我的应用程序位于此端点:
http://webserver/scheduler
我想知道是否可以将所有自定义 url 指向http://webserver/scheduler,而无需在浏览器中重写 url,例如当用户转到http://webserver/foo.scheduler.com/login 时,true 是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]
这允许我重写索引的基本路径,并将跟踪分流到特定的控制器。
【问题讨论】:
-
您有
*.scheduler.com的通配符 SSL 证书吗?
标签: apache .htaccess mod-rewrite