如何将内容HTTP_HOST变量添加到查询字符串

时间:2013-03-11 23:32:54

标签: php apache .htaccess mod-rewrite webserver

我需要创建一个重写规则/条件,它总是将http_host重写为查询字符串。

我有多个域,所有域都指向同一个DocumentRoot。 我现在要做的是,将被调用的域名(例如)example1.org添加到查询字符串以供应用程序内部使用。假设该应用程序位于baseapplication.org

开场

example.org
在我的浏览器中

运行到文档根目录,htaccess应该在内部重写它:

baseapplication.org?requested_domain=example1.org

我无法找到重写规则或条件的组合来使其运行。

2 个答案:

答案 0 :(得分:1)

我不是.HTACCESS专业版,但这应该可以解决问题。

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

在您的根目录中,在名为.HTACCESS的文件中以及index.php文件中使用该文件。 然后在索引文件中,您可以访问所有请求变量。

从这里你可以做php headers redirect,或者包含来自另一个目录的文件。 由你决定。

不是解决方案,但应该有所帮助

答案 1 :(得分:0)

来自Apache文档:

说明

假设您想通过DNS A记录向同一台机器提供用户名主页的www.username.host.domain.com,并且该机器上没有任何虚拟主机。

解决方案:

对于HTTP / 1.0请求没有解决方案,但对于包含Host:HTTP头的HTTP / 1.1请求,我们可以使用以下规则集在内部将http://www.username.host.com/anypath重写为/ home / username / anypath:

RewriteEngine on
RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.host\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^www\.([^.]+)\.host\.com(.*) /home/$1$2

Apache Rewrite Guide还有一些其他HTTP重写。