阿帕奇 - 域本地主机访问的文件夹为http://folder.local(Apache - Dom

2019-07-31 19:38发布

我的Ubuntu上运行XAMPP,我想创建我的项目一个虚拟主机,让我有一个顶级域名分配给我的服务器的根目录(例如.LOCAL)和里面的文件夹,通过的网址访问为http://foldername.local

此外,这将是多么复杂得多使用的.htaccess有http://someotherdomain.local重定向到/foldername在服务器的根路径?

Answer 1:

我已经成功地做我自己。 这是可能做到这一点,但是你需要安装一个DNS服务器

注:我决定用.dev作为我的地域,所以在下面的例子中, dev部分将把我所选择的领域。 记在脑子里。

安装和配置DNS服务器

它不应该不管是哪一个,但你需要知道如何正确配置它。 配置取决于它的DNS服务器您选择。 我去的dnsmasq。 它的重量轻,非常方便。

Ubuntu用户一个重要的注意的是,对于Ubuntu 11.10已经有轻版本,称为的dnsmasq基地安装,这将在安装过程中造成冲突。 我不会在这里解释如何解决这个问题,因为有其他地方提供许多指令。

一旦你安装你的DNS服务器,你应该把它设置为监听地址等于你想要的域名。

在我的情况跟的dnsmasq,这意味着打开/etc/dnsmasq.conf和变化的线路#62本: address=/dev/127.0.1.1

配置Web服务器

假设你已经安装了某种服务器软件,你需要做一些调整。

首先,你应该编辑您的hosts文件到你想要的域名映射到本地主机。

在我的XAMPP的Linux 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

新创建的主机打开根文件夹。 这是一个在你的devined的文件夹。 就我而言,那是/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.devhttp://folder.dev/file.htmlhttp://folder.dev/subfolder/document.txt

作为奖励,我会添加只是多了一个建议。 为什么我做这一切的原因是,这样我可以更轻松地开发我的Laravel和WordPress prjects。 然而,随着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/ ,这是不冷静,但我懒得在此刻得到它固定:)



文章来源: Apache - Domain for localhost to access folders as http://folder.local