Apache配置:自动重命名";file:///C:/xampp/htdocs/" 至;“本地主机”;打开本地html文件时在url中

Apache配置:自动重命名";file:///C:/xampp/htdocs/" 至;“本地主机”;打开本地html文件时在url中,apache,url,xampp,virtual-hosts,Apache,Url,Xampp,Virtual Hosts,我是网络开发新手,所以请容忍我。尽管我做了很多搜索,我可能还是遗漏了一些东西 当我打开一个html文件(当然是从Apache提供服务的目录中打开)时,它会在浏览器中打开,但url是: file:///C:/xampp/htdocs/path/to/file.html 这样一来,它就不会由Apache提供服务,因此为了实现这一点,我必须将路径的主机部分重命名为主机名。因此,如果主机路径是 C:/xampp/htdocs/ 然后我必须将url的这一部分重命名为主机名,在本例中为”file:///C:

我是网络开发新手,所以请容忍我。尽管我做了很多搜索,我可能还是遗漏了一些东西

当我打开一个html文件(当然是从Apache提供服务的目录中打开)时,它会在浏览器中打开,但url是:

file:///C:/xampp/htdocs/path/to/file.html

这样一来,它就不会由Apache提供服务,因此为了实现这一点,我必须将路径的主机部分重命名为主机名。因此,如果主机路径是

C:/xampp/htdocs/

然后我必须将url的这一部分重命名为主机名,在本例中为
”file:///C:/xampp/htdocs/path/to/file.html“
必须重命名为
“localhost/path/to/file.html”
,如果Apache要为该页面提供服务

我尝试添加一个虚拟主机,该主机的路径中包含“file:///”,但这会使Apache(和xampp)崩溃

问题:在打开Apache提供服务的本地html文件时,有没有办法避免手动重命名url?

对chrome做了一个小小的“url2hostname”扩展,这样每次在chrome中打开本地html文件时,我就可以节省1.42秒的url单击和重命名时间。为了保持连贯性和重复性,我将把它写下来

我为dropbox目录设置了一个虚拟主机。因此,在httpd-vhosts.conf中:

<VirtualHost *>
    DocumentRoot "C:\Users\hns\Dropbox\Webb"
    ServerName localhost
    <Directory "C:\Users\hns\Dropbox\Webb>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory> </VirtualHost>
嘿,至少我学到了一些东西:)

编辑:

真正的问题不是Apache,而是Chrome和cross-origin:

由于“同源策略”,有时网站内容无法在本地正确显示。所以在我的例子中,这个问题可以通过关闭该策略来解决,方法是从带有标志的快捷方式启动chrome,如
–允许从文件访问文件

–禁用web安全性

我知道该线程已经有一段时间没有任何活动了,但我已经为该场景创建了一个Chrome扩展。:)

名称为Localhost automation,它将开发人员重定向到
http://localhost
根据预定义的文件夹

我希望有人会觉得这很有用。:)

还有github回购协议


享受:)

我找到了一种更好的方法,无需扩展,适用于所有浏览器

编辑httpd-vhosts.conf文件(在我的系统E:\xampp\apache\conf\extra中,编辑httpd-vhosts.conf)

添加以下行并保存文件,不要删除任何内容

“虚拟主机*:80

服务器名本地主机

服务器别名本地主机

DocumentRoot e:/xampp/htdocs//或任何您想要的链接//

/虚拟主机”


重新启动Xampp

URL永远不会自动变为
file://...
如果您通过
http://localhost
。没有任何规则会导致这种转换。确切的链接是什么样子的?可能是链接本身指向
文件://
?谢谢Pekka,你让我不用在chrome中搜索规则:)我的解决方案发布在下面。太好了!工作起来很有魅力。
chrome.browserAction.onClicked.addListener(function() { 

    chrome.tabs.query({'active': true, 'currentWindow': true}, function (tabs) {
        var currentURL = tabs[0].url;
        newURL = currentURL.replace("file:///C:/Users/hns/Dropbox/Webb", "http://localhost");
        chrome.tabs.update(tabs[0].id, {url: newURL});
    })
});