Том*_*раћ 4 xampp url virtualhost
我在Ubuntu上运行XAMPP,我想为我的项目创建一个虚拟主机,这样我就可以将tld分配给我的服务器根目录(例如.local),并且可以通过URL访问其中的文件夹http://foldername.local.
另外,使用.htaccess http://someotherdomain.local重定向到/foldername服务器根目录中的路径会有多复杂?
我已经设法自己做了.可以这样做,但是您需要安装DNS服务器.
注意:我决定使用.dev作为我的本地域,因此在以下示例中,该
dev部分将引用我选择的域.记在脑子里.
它应该是什么并不重要,但你需要知道如何正确配置它.配置取决于您选择的DNS服务器.我去了dnsmasq.它重量轻,非常方便.
对于Ubuntu用户来说,一个重要的注意事项是,由于Ubuntu 11.10已经安装了一个名为dnsmasq-base的轻型版本,这将在安装过程中引起冲突.我不会在这里解释如何解决这个问题,因为其他地方有很多指示.
安装DNS服务器后,应将其配置为侦听与所需域相同的地址.
在我使用dnsmasq的情况下,这意味着打开
/etc/dnsmasq.conf并更改#62行:address=/dev/127.0.1.1
假设您已经安装了某种服务器软件,则需要进行一些调整.
首先,您应该编辑您的hosts文件以将您想要的域映射到您的localhost.
在Ubuntu的XAMPP for Linux中,这意味着我打开
/etc/hosts并更改了行Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost 127.0.1.1 tomica-ubuntu至
Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost 127.0.1.1 tomica-ubuntu dev这将重定向
http://dev到我的本地服务器.
接下来,使用几个特定选项创建一个新的虚拟主机,如下所示:
就我而言,这意味着
/opt/lampp/etc/extra/httpd-vhosts.conf在文件末尾打开 并添加它:Run Code Online (Sandbox Code Playgroud)<VirtualHost *:80> DocumentRoot "/opt/lampp/htdocs/dev" ServerName dev ServerAlias *.dev <Directory /opt/lampp/htdocs/dev> AllowOverride All </Directory> </VirtualHost>为简洁起见,我不会解释这段代码,因为文档也可用.
完成所有这些操作后,启动DNS和Web服务器,或者如果它们已在运行,则重新启动它们.
打开新创建的主机的根文件夹.这是你的文件夹.就我而言,就是这样/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]
Run Code Online (Sandbox Code Playgroud)
再次,解释所有这些将需要太多的空间和时间.只需复制/粘贴,不要担心:)但不要忘记将我更改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]
Run Code Online (Sandbox Code Playgroud)
该解决方案的两个缺点是:1)RewriteBase需要为每个新项目重新设置规则(即,您需要.htaccess在每个新项目中手动创建); 2)你的项目将可从两http://lvproject.dev/和http://lvproject.dev/public/,这是不冷静,但我懒得在此刻得到它固定:)
| 归档时间: |
|
| 查看次数: |
5953 次 |
| 最近记录: |