Aga*_*nMe 6 apache .htaccess mod-rewrite
我正在构建一个具有多租户结构的webscheduler,我正在尝试做的是为每个买家分配一个指向我的应用程序的自定义URL.
所以基本上当用户从我那里购买许可证时,我会在我的网络服务器上创建一个自定义网址,如下所示:
http://webserver/foo.scheduler.com/login
Run Code Online (Sandbox Code Playgroud)
foo
购买许可证的用户的名称在哪里,并且scheduler
是网址的默认部分,另一个示例包含更多买家:
http://webserver/foo.scheduler.com/login
http://webserver/foo2.scheduler.com/login
http://webserver/foo3.scheduler.com/login
Run Code Online (Sandbox Code Playgroud)
基本上有三个买家(我的客户),每个自定义端点允许我识别正确的数据库凭证,因为在我的逻辑中每个租户都有一个特定的数据库,用于更多的数据组织.
实际上我的应用程序位于此端点:
http://webserver/scheduler
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能指向所有自定义网址http://webserver/scheduler
,而不是在浏览器中重写网址,所以例如当用户转到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]
Run Code Online (Sandbox Code Playgroud)
这允许我重写索引的基本路径,并将跟踪分流到特定的控制器.
小智 3
很高兴为您提供帮助。
获取 *.scheduler.com 的有效 SSL 证书。如果你想让它发挥作用,你将需要它。您确定要使用 HTTPS 吗?您的其他 URL 不是 HTTPS。然后,您需要为 *.scheduler.com 设置虚拟主机,才能使用该证书正常工作。仅具有:
<VirtualHost *:443>
ServerAlias *.scheduler.com
DocumentRoot "/var/www/html/progetti/scheduler"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
还不够。您需要在那里设置所有 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>
Run Code Online (Sandbox Code Playgroud)
--
更新
要使http://webserver/foo.scheduler.com工作并提供 /scheduler 服务,请将其添加到已有的 VirtualHost 中。不是上面添加的新的,而是顶部原来的。
RewriteEngine on
RewriteRule ^(/[^./]+\.scheduler\.com)(?:$|/(.*)$) /scheduler/$2
Run Code Online (Sandbox Code Playgroud)
有任何问题请告诉我。如果您希望将其放入 .htaccess 中,则需要更新。
归档时间: |
|
查看次数: |
678 次 |
最近记录: |