从上一级文件夹中选择
所以,我创建了一个网站,并且在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功能,这将节省您的努力有史以来必须做这样的事情再次
如果他们在这样的结构(从它听起来像他们):
/ (document root)
/images
/scripts
/sample-folder
/test.php
那么你应该能够访问图像../images/filename.png
和/images/filename.png
。参考文档根目录比管理不同级别的目录结构更容易。
您可以创建一个symbolic link从/sample-folder/images/
到/images/
。 How to create a symbolic link in PHP。虽然我个人只是做一个查找/替换来更新源代码中的链接。
我已经使用过“images/myimage.jpg”,我不能添加“ /“之前的所有链接... – Cristy 2011-05-19 17:34:48
你不能添加一个正斜杠吗?你是否考虑过使用文本编辑器进行全局搜索并替换所有文件? – 2011-05-19 17:37:38
@Cristy:尝试编辑我发布的内容,看看是否作品,我没有测试它 – 2011-05-19 17:40:21