.htaccess htaccess子域重写,无需重定向

.htaccess htaccess子域重写,无需重定向,.htaccess,mod-rewrite,subdomain,.htaccess,Mod Rewrite,Subdomain,使用htaccess Rewrite,我希望我的url http://*.phoneataxi.com/(其中*是一个通配符,不包括“www”)按原样显示在地址栏中,但从http://*.phoneataxi.com/test.php获取信息?c=* 我尝试过很多不同的事情,但没有一件事能完全满足我的需要。大多数示例都是将子域重定向到地址栏中的“/test.php”文件,我不想这样做 我尽量不必在我的webroot中创建单独的子域和子域文件夹 想法?我使用此htaccess文件使Apache充当

使用htaccess Rewrite,我希望我的url http://*.phoneataxi.com/(其中*是一个通配符,不包括“www”)按原样显示在地址栏中,但从http://*.phoneataxi.com/test.php获取信息?c=*

我尝试过很多不同的事情,但没有一件事能完全满足我的需要。大多数示例都是将子域重定向到地址栏中的“/test.php”文件,我不想这样做

我尽量不必在我的webroot中创建单独的子域和子域文件夹


想法?

我使用此
htaccess
文件使Apache充当另一台主机的代理:

IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ghost\.pileborg\.se$
RewriteRule (.*) http://vps.pileborg.se/ghost/$1 [P]
</IfModule>
IfModule mod_rewrite.c>
重新启动发动机
重写cond%{HTTP_HOST}^ghost\.pileborg\.se$
重写规则(.*)http://vps.pileborg.se/ghost/$1[P]
它使所有访问“重定向”到。

UPDATE(2020) 有关此主题的一些答案非常陈旧,不再像预期的那样有效。
在花了几个小时寻找一些真正有效的东西之后,这就是我想到的;根据需要进行编辑:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ([a-z0-9]+)\.
RewriteRule ^(.*)$ - [E=BASE:%1]

RewriteCond %{DOCUMENT_ROOT}/%{ENV:BASE}/index.php -f
RewriteRule ^(.*)$ %{ENV:BASE}/index.php [L,NC,QSA]

RewriteCond %{DOCUMENT_ROOT}/%{ENV:BASE}/index.html -f
RewriteRule ^(.*)$ %{ENV:BASE}/index.html [L,NC,QSA]
崩溃 确保主机上安装并启用了
重写
模块

  • 首先,我们打开
    重写
    引擎并设置路径基
  • 然后分离子域——第一个点之前的任何字母/数字
  • 在此运行时环境中设置包含子域的变量
  • 检查子域文件夹和索引文件是否存在
  • 如果它不存在,则使用该文件作为请求处理程序(无重定向)
  • 如果它不存在,则请求将正常进行
旗帜 此处使用的标志已解释,但上面使用的标志非常简单:

  • [L]
    最后一条规则,忽略其余规则
  • [NC]
    无大小写,无大小写限制
  • [QSA]
    我记得这是“查询字符串附加”:D