我有一个项目,用户可以在其中创建自己的配置文件。配置文件将具有子域 URL,例如
robert.blogger.com
。因此,如果该用户拥有自己的一些域,例如 robert.com
。
然后我希望对 robert.com
的每个请求都重定向到 robert.blogger.com
而不更改 URL。
URL 应显示
robert.com/home.html
、robert.com/aboutus.html
等,但实际上代码应从 robert.blogger.com/index.html
、robert.com/aboutus.html
等运行。
这可能吗?如果是这样,该怎么办?
这不是用 php 完成的。
实现此目的的最佳方法是通过 HTACCESS 重定向。或者,这可以通过 DNS A 记录来完成,但需要提升访问权限。
将名为 (.htaccess) 的文件放置在包含以下内容的域的根目录中:
重写引擎开启
RewriteRule * subdomain.domain.com [L]
除非使用curl,否则在php 中不可能。 您需要设置通配符 DNS 记录以捕获所有子域并发送 将它们发送给您的网络服务器。 然后你需要设置 Apache 来捕获 所有指定的虚拟主机并将其发送到 目录。
我只想使用 header 函数。 header("位置:http://"$user_name."blogger.com");
这会起作用
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domainname.com
RewriteCond %{HTTP_HOST} ([^.]+)\.domainname.com
RewriteRule ^(.*) user/user.php?username=%1
ErrorDocument 404 /notfound.php
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
如果您控制托管域“robert.com”的服务器,则必须允许跨源请求,然后设置反向代理。
# for user robert
location / {
proxy_pass http://robert.blogger.com
}
有多种方法可以捕获主机并替换用户,但您应该能够从这里找到如何做到这一点。