2013-05-19 156 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