htaccess子域重写没有重定向

时间:2013-11-01 15:54:22

标签: .htaccess mod-rewrite subdomain

使用htaccess Rewrite,我希望我的网址http://*.phoneataxi.com/(其中*是通配符,不包括'www')按地址栏显示,但是从http:// *获取信息.phoneataxi.com / test.php的C = *。

我尝试了很多不同的东西,但没有什么能完全符合我的需要。大多数示例都将子域重定向到地址栏中的'/test.php'文件,我不想这样做。

我正在尝试不必在我的webroot中创建单独的子域和子域文件夹。

想法?

2 个答案:

答案 0 :(得分:2)

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

IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ghost\.pileborg\.se$
RewriteRule (.*) http://vps.pileborg.se/ghost/$1 [P]
</IfModule>

这会导致http://ghost.pileborg.se/的所有访问权限被“重定向”到http://vps.pileborg.se/ghost/

答案 1 :(得分:0)

更新(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]

故障

确保在您的主机上安装并启用了rewrite模块

  • 首先,我们打开rewrite引擎并设置基于路径的路径
  • 然后隔离子域-第一个点之前的任何字母/数字
  • 在此运行时环境中设置一个变量,该变量包含子域
  • 检查子域文件夹和索引文件是否存在
  • 如果 存在-然后将该文件用作请求处理程序(无重定向)
  • 如果确实存在 ,则请求会正常进行

标志

here说明了这里使用的标志,但是上面使用的标志非常简单:

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