加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何保持网站与url路由目录无关

发布时间:2020-12-13 13:29:40 所属栏目:PHP教程 来源:网络整理
导读:我正在开发一个使用url路由的 PHP网站.我希望该站点与目录无关,因此可以将其从 http://site.example.com/移动到 http://example.com/site/,而无需更改HTML中的每个路径.当我链接到不受路由影响的文件(例如css文件,图像等)时,问题出现了. 例如,假设控制器欢迎
我正在开发一个使用url路由的 PHP网站.我希望该站点与目录无关,因此可以将其从 http://site.example.com/移动到 http://example.com/site/,而无需更改HTML中的每个路径.当我链接到不受路由影响的文件(例如css文件,图像等)时,问题出现了.

例如,假设控制器欢迎的动作索引的视图包含图像img / banner.jpg.如果使用URL http://site.example.com/welcome请求页面,浏览器将请求图像为http://site.example.com/img/banner.jpg,这非常好.但是如果使用url http://site.example.com/welcome/index请求页面,浏览器会认为welcome是一个目录,并且会尝试将图像作为http://site.example.com/welcome/img/banner.jpg获取,这显然是错误的.

我已经考虑了一些选项,但它们对我来说都不完美:

>使用url重写将请求从(* .css | * .js | …)或(css / * | js / * | …)重定向到正确的路径.

问题:每个扩展都必须在重写规则中命名.如果有人要添加新的文件类型(例如mp3文件),则不会重写.
>使用php函数将基本路径预先添加到每个相对路径.例如:
< img src =“<?php echo url :: base();?> img / banner.jpg”/>

问题:看起来凌乱;包含路径的css-和js文件必须由PHP处理.

那么,如何保持网站目录独立?有没有比我想出的更好/更清洁的方式?

你可以把头放进去
<base href="<?php echo url::base(); ?>" />

这意味着浏览器将请求相对于该路径的任何非绝对URL.但是我不确定这会如何影响CSS文件中嵌入的URL等.这不会影响CSS文件中定义的路径. (感谢mooware)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读