将子域重定向到PHP页面并对其进行掩码

时间:2016-07-06 11:26:32

标签: php apache .htaccess

基本上每个人都有自己的网页设置在domain.com/site?name=whatever

我的主机已自动启用子域名(例如,如果我要创建名为dalton的文件夹,我可以自动访问dalton.domain.com)

无论如何,我希望人们能够访问whatever.domain.com并实际查询domain.com/site?name=whatever(我希望它也可以屏蔽它,所以它们仍然在子域中)

有什么想法吗?这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

如果您设置了每个子域指向的index.php页面,则可以

  • 检索网址的“子域名”部分
  • 创建包含您要显示的实际页面的iFrame

这通常是许多域名托管公司“屏蔽”的方式。

index.php (删节):

<?php
    //Get subdomain
    $subdomain = array_shift((explode(".",$_SERVER['HTTP_HOST'])));

    //Rewrite URL
    $url = "http://www.domain.com/site?name=" . $subdomain;

    //Create page
    echo "<!doctype html><html><head><title>Page Title</title></head><body style='margin:0;padding:0;'>";

    //Create full-screen iframe with that page as the URL
    echo '<iframe src="'.$url.'" style="border: 0; width: 100%; height: 100%"></iframe>';

    //Close page
    echo "</body></html>";

或者,您可以使用.htacccess

几乎完全处理此问题

.htaccess (删节):

#Use the Rewrite engine
RewriteEngine on

#Doesn't start with "www."
RewriteCond %{HTTP_HOST} !^www\.

#Check URL is "something.domain.com"
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com

#Capture the subdomain and rewrite
RewriteRule ^(.*)$ http://domain.com/site?name=/%1/$1 [L,NC,QSA]