从上一级文件夹中选择

问题描述:

所以,我创建了一个网站,并且在public_html文件夹中有很多页面。这些页面从public_html文件夹的直接子文件夹中加载图像和脚本。从上一级文件夹中选择

现在我需要将所有这些文件移动到一个文件夹中(让我们将其命名为sample-folder)。

我的问题:有没有什么办法让网页里面的“样本文件夹”访问“的public_html” 内从其他文件夹中的图片和文字,而无需修改所有页面并添加../图像/影像每个链接前的.png?

我不知道,一些htacces重写规则?一些php config.ini编辑?

结构:

public_html 
    images 
    scripts 
    sample-folder 
     test.php 

这的.htaccess规则应该工作(假定mod_rewrite的启用):

RewriteRule ^images/(.*)$ sample-folder/images/$1 

这将采取文件的所有请求的(不存在)images目录和sample-folder/images/要求的文件来代替。

希望这是你以后的样子。

编辑:我的错,读错了问题。只是这样做对你的路和.php文件将引用正确的图像,无论有多深目录中的PHP文件是:

<img src="/images/myimage.jpg" />

可以使用../relative/path办法,咬/leading/forward/slash/approach.jpg应该工作每时每刻。

编辑:如果更改链接不适合您,您可以将此.htaccess文件放入sample-folder。它会将所有请求从sample-folder中的images路由到根目录中的/images

RewriteEngine on 
RewriteRule ^images/(.*)$ /images/$1 

确保它在sample-folder或任何你选择命名它。


请记住,这不是最好的解决方案。如果您现在开始滥用重写规则,您的应用程序将很快变得混乱。通常,我会设置一个常量,变量或编写一个php函数,它可以解析您的URL和/或包含路径。

对于包括:请参阅set_include_path()

这应该确保你的PHP包括获得来自同一个地方叫无论您身在何处的目录树。通常,这将设置在某种引导文件或任何包含在所有脚本顶部的文件中。

对于图像,JavaScript等 - 我强烈建议更改所有路径使用前导斜杠或绝对URL(最好在常量或函数调用中)。你已经看到了为什么你经常做简单任务的函数(比如用HTML引用图像)是一个好主意。

改变所有这些文件现在看起来可能很痛苦,但请放心,这将为您节省加载以后的头痛。我建议类似这样的东西:

  • 下载整个应用程序在本地
  • 制作备份
  • 查找text editor that supports find/replace in files
  • 修复所有的路径图像,JavaScript,CSS等使用领先正斜杠现在
  • 考虑从现在开始利用您自己的PHP功能,这将节省您的努力有史以来必须做这样的事情再次
+0

我已经使用过“images/myimage.jpg”,我不能添加“ /“之前的所有链接... – Cristy 2011-05-19 17:34:48

+0

你不能添加一个正斜杠吗?你是否考虑过使用文本编辑器进行全局搜索并替换所有文件? – 2011-05-19 17:37:38

+0

@Cristy:尝试编辑我发布的内容,看看是否作品,我没有测试它 – 2011-05-19 17:40:21

如果他们在这样的结构(从它听起来像他们):

/ (document root) 
    /images 
    /scripts 
    /sample-folder 
     /test.php 

那么你应该能够访问图像../images/filename.png/images/filename.png。参考文档根目录比管理不同级别的目录结构更容易。

+0

如果我使用“images/filename.png”,图像不会加载。 – Cristy 2011-05-19 17:32:51

+0

用前斜杠作为前缀(例如'' - 这表明它与web根目录有关 – Ross 2011-05-19 17:33:38

+0

这就是问题所在,我有一千个没有斜杠的链接,我不能编辑它们。 .. – Cristy 2011-05-19 17:35:31

如果您的图像和脚本位于未更改的特定文件夹中。只要让你的链接是绝对的而不是相对的。

+0

这个想法是我不能改变链接。 – Cristy 2011-05-19 17:39:52

您可以创建一个symbolic link/sample-folder/images//images/How to create a symbolic link in PHP。虽然我个人只是做一个查找/替换来更新源代码中的链接。

+0

只有Windows:( – Cristy 2011-05-19 18:12:49

+0

@Cristy:Windows支持符号链接。服务器运行的是什么版本的Windows?你需要什么类型的访问(远程桌面/它正好在你面前/只有ftp)? – daalbert 2011-05-19 18:20:53

+0

The服务器运行LINUX – Cristy 2011-05-19 18:22:58