2013-05-19 112 views
0

我知道这个问题已经被问了很多,但我不知道为什么它不适合我: - ? 这是我的htaccess:htaccess将所有子域重写为index.php

Options +FollowSymLinks 
IndexIgnore */* 
# Turn on the RewriteEngine 
RewriteEngine On 
# Rules 
RewriteRule ^(.*)$ index.php 

此代码应重写与包括所有子域名的index.php任何路径中的任何链接,但事实并非如此。

该域的名称也不应该进入htaccess,因为它是未知的! 我打电话从127.0.0.1这个htaccess以及很多网站都应该被链接到本地​​主机:

/etc/hosts中

127.0.0.1 localhost 
127.0.1.1 mypc 
127.0.0.1 google.com 
127.0.0.1 example.com 

在这里,我的浏览器浏览google.com或example.com的成功而无法找到其子域名,如sub1.google.com或sub1.example.com。

的index.php

<?php 
$uri = 'http'. ($_SERVER['HTTPS'] ? 's' : null) .'://'. $_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI]; 
print_r($uri); 
?> 

没有任何一个知道这的.htaccess代码是如何做工作,为子域呢?

回答

1

如果我理解你的问题,你问为什么google.com正确加载本地主机上的index.php,但sub1.google.com等子域不。

您无法使用hosts文件覆盖子域DNS。要完成此操作,您需要将所有子域添加到hosts文件或设置专用DNS服务器,其中指向127.0.0.1的记录为google.com*.google.com

+0

你是真的。我终于通过使用dnsmasq和编辑/etc/dnsmasq.conf来实现这一点,并且它工作正常! – sishma