我已经设法自己做到了。可以这样做,但是您需要安装 DNS 服务器。
注意:我决定使用 .dev 作为我的本地域,所以在下面
例如,dev 部分将引用我选择的域。保持在
介意。
安装和配置 DNS 服务器
不管它是哪一个,但您需要知道如何正确配置它。配置取决于您选择的 DNS 服务器。我选择了 dnsmasq。它重量轻,非常方便。
Ubuntu 用户需要注意的是,自 Ubuntu 11.10 以来
已经安装了一个名为 dnsmasq-base 的轻量级版本,它将
在安装过程中引起冲突。我不会在这里解释如何
绕过这个,因为其他地方有很多说明。
安装好 DNS 服务器后,您应该将其配置为侦听与所需域相同的地址。
在我的情况下 dnsmasq,这意味着打开 /etc/dnsmasq.conf 和
将第 62 行更改为:address=/dev/127.0.1.1
配置网络服务器
假设您已经安装了某种服务器软件,您需要进行一些调整。
首先,您应该编辑您的hosts 文件以将您想要的域映射到您的本地主机。
在我的 XAMPP for Linux on Ubuntu 中,这意味着我打开了
/etc/hosts 和换行
127.0.0.1 localhost
127.0.1.1 tomica-ubuntu
到
127.0.0.1 localhost
127.0.1.1 tomica-ubuntu dev
这会将http://dev 重定向到我的本地服务器。
接下来,使用几个特定选项创建一个新的虚拟主机,如下所示:
就我而言,这意味着打开
/opt/lampp/etc/extra/httpd-vhosts.conf 并在末尾添加
文件:
<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs/dev"
ServerName dev
ServerAlias *.dev
<Directory /opt/lampp/htdocs/dev>
AllowOverride All
</Directory>
</VirtualHost>
为了简洁起见,我不会解释这段代码,因为
文档也可用。
所有这些都完成后,启动您的 DNS 和 Web 服务器,如果它们已经在运行,则重新启动它们。
配置.htaccess
打开新创建主机的根文件夹。那是您的 .就我而言,那是/opt/lampp/htdocs/dev。在那里,创建一个.htaccess 文件并将其放入其中:
# Specify order of index files; if none exist, show files list
DirectoryIndex index.php index.html
# Interpret .html files as .php scripts
AddHandler php5-script .php .html
# THE MAGIC - Redirect subdomains of .dev to their respective folders
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.dev(.*)?$ [NC]
RewriteRule !^%2\.dev%3?/$ http://dev/%2%{REQUEST_URI}/ [P]
同样,解释所有这些需要太多的空间和时间。只需复制/粘贴,别担心 :) 但不要忘记将我的 dev 更改为您为域名选择的任何内容。
就是这样! 现在您应该可以使用http://folder.dev/、http://www.folder.dev、http://folder.dev/file.html、http://folder.dev/subfolder/document.txt 等地址浏览您的项目.
作为奖励,我将再添加一条建议。我这样做的原因是我可以更轻松地开发我的 Laravel 和 WordPress 项目。但是,使用 Laravel,您应该将 url http://lvproject.dev/ 重定向到 /lvproject/public 的位置。这是启用此功能的.htaccess 文件。打开您的/lvproject 文件夹,创建一个.htaccess 文件并将此代码放入其中:
RewriteBase /lvproject/
RewriteCond %{REQUEST_URI} lvproject/index\.php [NC]
RewriteRule index\.php(.*)$ public/ [L]
此解决方案的两个缺点是:1)RewriteBase 规则需要为每个新项目重新设置(即您需要在每个新项目中手动创建.htaccess); 2) 你的项目可以从http://lvproject.dev/ 和http://lvproject.dev/public/ 获得,这不是很酷,但我现在懒得修复它:)