.htaccess将子域重写为请求参数

时间:2017-03-30 12:27:25

标签: php wildcard subdomain

何我可以重写此请求类型:

http://name1.domain1.com/        -> index.php?subdomain=name1
http://name2.domain2.org/        -> index.php?subdomain=name2

我需要在php脚本(index.php)中管理子域GET变量。 我需要所有域的通用规则。

这是我的.htaccess文件,但它无效。

RewriteEngine On

# Parse the subdomain as a variable we can access in PHP, and
# run the main index.php script
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST}        !^www
RewriteCond %{HTTP_HOST}         ^([^\.]+)\.([^\.]+)\.([^\.]+)$
RewriteRule ^(.*)$ /$1?subdomain=%1

感谢。

1 个答案:

答案 0 :(得分:0)

假设您使用的是PHP。您不需要将其作为查询参数,因为从PHP您已经可以看到客户端浏览器请求的URL。

echo $_SERVER['HTTP_HOST']

<强>输出:

bubbles.domain.com

你只需要解析它。

$host= (explode( '.', $_SERVER['HTTP_HOST']))[0];
$subdomain = $host[0];

if($subdomain == 'www' || $subdomain == 'www2') 
    $subdomain = $host[1];

echo $subdomain;

<强>输出:

bubbles