使用PHP调用文件,保留被调用文件的本地url


Calling a file with PHP keeping local URLs of called file

我有两个文件:

1。- root/folder/folder/themes/themeindex.php

2。- root/index.php

我想在index.php中包含themeindex.php,所以当你进入root目录时,它会加载主题而不带你到(或显示你)root/folder/folder/themes/路径。

我正在努力寻找或找出一种方法来包括themeindex.php文件,但保持其themes文件夹的url本地。

意思我

<link rel="stylesheet" type="text/css" href="style.css" />

将保持原样,我不需要把它变成:

<link rel="stylesheet" type="text/css" href="/folder/folder/themes/style.css" />

我希望这一切都有意义。

编辑:希望我对原因的解释能对你有所帮助。

1。-我希望最终的开发人员能够直观地创建主题尽可能因此,url尽可能保持简单和直观。

2。-我需要将活动主题包含到root中目录,因此当打开root时它会自动加载。

所以如果你把我的第一个理由和我的第二个理由结合起来,那么你可能会理解url保持本地和易于访问是多么重要理解。

您可以请求style.php来代替style.css,这是一个您定义的使用导入root/folder/folder/themes/style.css并直接回显它的文件。

你可以在你的代码中给出一个基本标签,并将它指向:存放CSS文件的文件夹

http://www.w3schools.com/tags/tag_base.asp

在根。Htaccess 文件,添加下一行:

RewriteEngine On
RewriteRule ^style.css$ /folder/folder/themes/style.css [L]

包含主题文件很简单:

include('root/folder/folder/themes/themeindex.php');

另一个问题是HTML特有的。HTML需要有文件的web路径(而不是绝对路径),这样它才能加载并使用它。

你能做的最好的事情就是:

<link 
    rel="stylesheet" 
    type="text/css" 
    href="<?php echo $theme_dir; ?>style.css" 
/>

,但仍然会暴露您的主题目录。你为什么要把目录藏起来?


对评论的回应:

如果你把我上面的代码,让你的开发人员知道如何构建自己的内容目录。你所需要做的就是跟踪$active_theme_root之类的东西,并将其返回以加载自己的自定义主题。据我所知,你不能设置一个HTML包含目录,所以HTML需要知道所有所需资源的web路径

最好的解决方案可能是让他们为所有主题使用全局样式表文件夹("root/stylesheets")。然后,它们将以一个相对的庄园链接到这个全局文件夹:

<link rel="stylesheet" type="text/css" href="stylesheets/mytheme/style.css" />