Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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
apache/cpanel/php共享主机上的相对/根路径_Php_Apache_Codeigniter - Fatal编程技术网

apache/cpanel/php共享主机上的相对/根路径

apache/cpanel/php共享主机上的相对/根路径,php,apache,codeigniter,Php,Apache,Codeigniter,我正在尝试将php/codeigniter项目部署到共享托管环境中。 我在本地运行MAMP,因此引用了我的所有路径:- background:transparent url(/img/myimj.jpg) left top no-repeat; 部署共享主机时,这些链接不起作用,要解决它们,我需要添加../。仅更改所有这些引用将是令人厌烦的。但是codeigniter路径也会受到影响,我想了解如何拥有与本地MAMP apache实例相同的映射 由于不熟悉apache,我不知道如何解决这个问题。

我正在尝试将php/codeigniter项目部署到共享托管环境中。 我在本地运行MAMP,因此引用了我的所有路径:-

background:transparent url(/img/myimj.jpg) left top no-repeat;
部署共享主机时,这些链接不起作用,要解决它们,我需要添加../。仅更改所有这些引用将是令人厌烦的。但是codeigniter路径也会受到影响,我想了解如何拥有与本地MAMP apache实例相同的映射

由于不熟悉apache,我不知道如何解决这个问题。我正在使用已映射到我的用户的根public_html文件夹。是否可以在.htaccess中使用重写规则来执行此操作


谢谢您的时间。

您可以使用.htaccess重写规则,将所有图像/css/任何内容定向到特定目录

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /path/relative/to/web-root/

    RewriteRule /?([^/]+)\.css css/$1.css
    RewriteRule /?([^/]+)\.(jpe?g|png|gif) images/$1.$2
</IfModule>
这是假设您的所有图像都在名为images的文件夹中,所有样式表都在名为css的文件夹中


在这种情况下,最好使用绝对路径调用代码/css中的图像和样式表。这样可以正确缓存图像。即使服务器将所有图像重定向到同一目录,客户端也不会看到。因此,如果使用树中不同位置的两个文件的相对路径调用同一个图像,则客户端会将它们视为两个不同的图像,而不会正确缓存它

,如果共享环境意味着共享一个文档根目录,然后,您必须小心使用.htaccess文件,因为这将是适用于所有人的.htaccess文件。否则,如果您有一个虚拟主机,那么如何将图像上载到/path/to/document/root/img

感谢您在这方面的投入


通过与网络托管公司的联系,我意识到如果没有指向虚拟主机的ANAME,虚拟主机的行为就会有所不同。添加一个文件夹后,public_html将映射为web根目录。

感谢您的回复。在服务器上检查后,mod_rewrite未启用:帐户为虚拟主机类型,在cpanel中,它将public_html定义为www根目录,但是否根目录实际上就是上面的目录,因此URL问题无法解决?在经过一点测试后,尝试了各种组合,必须像这样引用共享主机上的绝对本地路径:-背景:transparent/~username/common/img/myimg.jpg;我能做些什么使它像我的本地web服务器吗?:-background:transparent/common/img/myimg.jpg;啊。。。所以你在那种共享的环境中。你可能必须咬紧牙关,做出改变。特别是因为MOD_REWRITE对您不可用。找到一个好的搜索/替换编辑器。