获取转发后的.htaccess mod重定向

时间:2015-05-18 11:42:05

标签: php apache mod-rewrite redirect

我使用mod重写规则将用户从通配符子域重定向到特定子目录,同时不更改地址栏URL。我已经完全成功了,但我还需要在内部使用通配符子域名。 例如,如果有人尝试xyz.domain.com我正在重定向他说domain.com/abc,我还需要xyz供内部使用。

我尝试$_SERVER['SERVER_NAME']但它返回当前的子目录地址。还试过$_SERVER['HTTP_REFERER']但没有成功。所以,如果有人可以帮忙请。

我的.htaccess代码如下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/project\/" [P,NC,QSA]

1 个答案:

答案 0 :(得分:1)

我之前的回答不适用于动态子域。所以在你的情况下,它不会工作。

当我测试你的.htaccess规则时,我的服务器设置一个sqrt(pow(x1-x2)+pow(y1-y2)) 变量,其值为原始主机“xyz.domain.com”。

也许这可能有所帮助。

回答静态特定子域;

在重定向条件之前将这些行放到.htaccess

$_SERVER['HTTP_X_FORWARDED_HOST']

然后您可以在PHP代码中使用RewriteCond %{HTTP_HOST} ^xyz.domain.com(.*)$ [NC] RewriteRule .* - [E=internalSubdomain:xyz] $_SERVER['internalSubdomain']