window下的hosts檔案
首先找到C:WindowsSystem32driversetc目錄下的hosts檔案,此檔案在目前的目錄下是無法修改的,所以必須複製出來(到案頭),然後在檔案尾部添加上你所需要的網站網域名稱
以hosts檔案為例,其本身配置了 127.0.0.1 localhost 前段是表示訪問的主機IP,後一段是表示要訪問的網域名稱
所以如果需要配置一個www.111cn.net的網域名稱只需要加上 127.0.0.1 www.111cn.即可。
最後我在網上瞭解到windows下的hosts檔案其作用就是‘將一些常用的網址網域名稱與其對應的IP地址建立一個關聯“資料庫”,當使用者在瀏覽器中輸入一個需要登入的網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址,一旦找到,系統會立即開啟對應網頁,如果沒有找到,則系統再會將網址提交DNS網域名稱解析伺服器進行IP地址的解析。’應該是類似一個 key-value索引值對的方式去解析網域名稱,如果能在本機找到相應IP則訪問當前IP。
apche的vhost設定檔
先找到vhost所在目錄D:\xampp\apache\conf\extra,自己對應安裝的xampp的目錄去尋找,找到vhost檔案後,開啟會看到如下系統配置:
DocumentRoot "D:\xampp\htdocs"
ServerName localhost
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
Options Indexes FollowSymLinks Includes ExecCGI
Require all granted
Order allow,deny
Allow from all
AllowOverride AuthConfig
如果你看過很多設定檔的話,相信能一眼就看清楚,因為我們之前配置了windows下的hosts檔案的虛擬機器主機網域名稱為www.test.com所以在vhost檔案中應該這樣配置:
代碼如下 |
複製代碼 |
ServerAdmin DocumentRoot "D:\workspace\php\project\public" ServerName local.test.com ErrorLog "logs/dummy-host.example.com-error.log" CustomLog "logs/dummy-host.example.com-access.log" common <Directory "D:\workspace\php\project\public"> Options Indexes FollowSymLinks Includes ExecCGI Require all granted </Directory> <IfModule mod_rewrite.c> <Directory "D:\workspace\php\project"> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </Directory> <Directory "D:\workspace\php\project\public"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] </Directory> </IfModule> |
可能不同人的Directory 目錄配置不一樣,一般系統預設是放在D:\xampp\htdocs下,但是為了方便放不同的幾個項目,我們一般習慣的把系統預設的訪問目錄配置到我們的工作目錄下,以我的為例:D:/workspace/php/下對應不同的項目目錄。
最後如果還是不能訪問的話,請檢查xampp下的httpd.conf檔案中的 Include conf/extra/httpd-vhosts.conf這條語句是否被注釋掉,如果被注釋掉則去掉備註陳述式。