Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
html/php:如何处理绝对url?_Php_Html_Url_Anchor_Root - Fatal编程技术网

html/php:如何处理绝对url?

html/php:如何处理绝对url?,php,html,url,anchor,root,Php,Html,Url,Anchor,Root,就浏览器支持而言,html标记使用安全吗?或者我应该用PHP生成一个根路径,然后像这样添加它,组成一个绝对url 像这样使用base标记我喜欢第一个选项,在PHP标记中输出一个base目录 <a href="<?=BASE?>somepage.html">somepage</a> 最好的。这使您的站点独立于安装它的目录,您可能无法更改共享主机包上的虚拟主机设置。如果需要,将映像文件外包到不同的服务器/子域也很容易 在浏览器支持方面使用它是安全的,但出于代码可

就浏览器支持而言,html标记使用安全吗?或者我应该用PHP生成一个根路径,然后像这样添加它,组成一个绝对url


像这样使用base标记我喜欢第一个选项,在PHP标记中输出一个base目录

<a href="<?=BASE?>somepage.html">somepage</a>
最好的。这使您的站点独立于安装它的目录,您可能无法更改共享主机包上的虚拟主机设置。如果需要,将映像文件外包到不同的服务器/子域也很容易


在浏览器支持方面使用它是安全的,但出于代码可维护性的原因,我个人强烈建议不要使用它。更改URL处理方式的规则;您需要记住所有相关URL的基础;而且很容易被忽视。从编程的角度来看,这感觉像是一个肮脏的补丁。

我喜欢第一个选项,在PHP标记中输出一个基本目录

<a href="<?=BASE?>somepage.html">somepage</a>
最好的。这使您的站点独立于安装它的目录,您可能无法更改共享主机包上的虚拟主机设置。如果需要,将映像文件外包到不同的服务器/子域也很容易


在浏览器支持方面使用它是安全的,但出于代码可维护性的原因,我个人强烈建议不要使用它。更改URL处理方式的规则;您需要记住所有相关URL的基础;而且很容易被忽视。从编程的角度来看,这感觉像是一个肮脏的补丁。

我的建议是使用以斜杠开头的绝对URL,只需设置一个使用/localhost/testsite/作为其文档根的虚拟主机。然后,您可以离开绝对URL,只需访问您的站点http://testsite/ 本地。

我的建议是使用以斜杠开头的绝对URL,只需设置一个使用/localhost/testsite/作为文档根的虚拟主机。然后,您可以离开绝对URL,只需访问您的站点http://testsite/ 本地。

您肯定对此进行了一些思考,但我想在组合中再考虑一点。如果您正在编写一个web应用程序,那么您应该以这样一种方式构造它,即将来可以将它安装到任何子目录中,并且它将继续工作,而不会发生什么变化

这意味着href's、src's、action's甚至HTTP位置头都需要知道这样的更改。这就是为什么我建议在uri前面加上或任何你想叫它的东西


关于站点库是否应该包含尾随斜杠的争论可能会很激烈。

您肯定已经对此进行了一些思考,但我想在组合中再考虑一点。如果您正在编写一个web应用程序,那么您应该以这样一种方式构造它,即将来可以将它安装到任何子目录中,并且它将继续工作,而不会发生什么变化

这意味着href's、src's、action's甚至HTTP位置头都需要知道这样的更改。这就是为什么我建议在uri前面加上或任何你想叫它的东西


关于站点库是否应该包含尾随斜杠的争论可能会很激烈。

两年后回到这个问题,我现在意识到处理绝对URL的最佳方法是将URL放入包装函数中,例如:

<a href="<?php echo url('/somepage.html');?>">somepage</a>

两年后回到这个问题,我现在意识到处理绝对URL的最佳方法是将URL放入包装函数中,例如:

<a href="<?php echo url('/somepage.html');?>">somepage</a>

哦,我知道有一些简单的解决办法!如果我知道如何设置虚拟主机。。。好的,回到谷歌。但是,如果我想更改域/子域,该怎么办?无论使用什么主机名访问站点,您的链接URL都不会更改。这就是这种方法的优点。创建虚拟主机时,可以设置它将使用的主机名。如果您需要更改它,只需更改配置文件即可。有效点,现在我想我可以使用所有3种链接方法。基本链接、绝对链接和相对链接;在这种情况下,你的把戏就发挥了作用。哦,我知道有一些简单的解决办法!如果我知道如何设置虚拟主机。。。好的,回到谷歌。但是,如果我想更改域/子域,该怎么办?无论使用什么主机名访问站点,您的链接URL都不会更改。这就是这种方法的优点。创建虚拟主机时,可以设置它将使用的主机名。如果您需要更改它,只需更改配置文件即可。有效点,现在我想我可以使用所有3种链接方法。基本链接、绝对链接和相对链接;在这种情况下,你的伎俩就发挥了作用。那么你说我应该为每个链接添加一个基本目录吗?@Yuri我是这样做的,是的,但我开发的应用程序需要能够成为dep
在像/subdir/appname/index.html这样的子目录中加载,所以不是这样就是这样。你并不总是需要这个。如果您的问题仅限于本地测试环境,Jimmy简单地纠正虚拟主机的方法将很有效,但您的应用程序或站点将无法以这种方式轻松使用子目录-路径将硬编码到根目录。答案接受,这是我一段时间以来一直采用的方法,我只是认为base是减少html使用的一种方法,但似乎没有真正的出路,除非我混合使用这个和jimmys技巧。+1刚刚意识到您正在讨论子目录。我会留下我的答案,因为它包含一些可能有用的细节。@webbie是的,我想我们基本上是在表达相同的观点。但这并不伤人,因为这是一个很好的观点:那么你说我应该为每个链接添加一个基本目录?@Yuri我是这样做的,是的,但我开发的应用程序需要能够部署在子目录中,如/subdir/appname/index.html,所以要么如此,要么如此。你并不总是需要这个。如果您的问题仅限于本地测试环境,Jimmy简单地纠正虚拟主机的方法将很有效,但您的应用程序或站点将无法以这种方式轻松使用子目录-路径将硬编码到根目录。答案接受,这是我一段时间以来一直采用的方法,我只是认为base是减少html使用的一种方法,但似乎没有真正的出路,除非我混合使用这个和jimmys技巧。+1刚刚意识到您正在讨论子目录。我会留下我的答案,因为它包含一些可能有用的细节。@webbie是的,我想我们基本上是在表达相同的观点。但这并不伤人,因为这是一个很好的观点:谢谢你的回答,这让我明白了,基地不是前进的方向。谢谢你的回答,这让我明白了,基地不是前进的方向。
function url($url){
    if(strpos($url,'/')===0){
        return 'http://localhost/testsite'.$url;
    }else{
        return $url;
    }
}