mod_rewrite - 文件夹的绝对路径

时间:2014-02-16 22:15:05

标签: php apache mod-rewrite

我现在正在使用mod_rewrite,我正在使用这个

RewriteRule ^.+(css/.+)$ $1 [L]
RewriteRule ^.+(js/.+)$ $1 [L]
RewriteRule ^.+(img/.+)$ $1 [L]
RewriteRule ^.+(fonts/.+)$ $1 [L]
RewriteRule ^.+(swf/.+)$ $1 [L]

现在我只是写css / cssfile.css和js img和东西而且它有效(即使我不认为这是正确的方法)

但是无论如何,我有一个文件夹,名为带有一些PHP文件的函数,我试图用与此相关的文件做同样的事情..但是那并没有变得很好,我想要的原因是我想做的一个文件包含,所以我避免,不必要地制作几行代码。

有谁知道我在说什么,也许知道我应该怎么做?

我很抱歉糟糕的探索(mod_rewrite新手),我试图找出任何好的回复..

1 个答案:

答案 0 :(得分:1)

PHP的include语句无法解析URL或向Apache询问任何信息,因此mod_rewrite不会以任何方式影响其行为。

您正在寻找的是一种定义文件相对于“文档根”(映射到example.com/的目录)而不是相对于当前文件的位置的方法。

为此,您可以使用PHP变量$_SERVER['DOCUMENT_ROOT'],例如

 include $_SERVER['DOCUMENT_ROOT'] . '/functions/connect_db.php';

将函数定义移动到文档根目录上面的一个目录也可能是一个想法,这样它们就不能自己作为URL加载。函数dirname()给出了特定路径的“父”目录,因此您可以使用:

 include dirname($_SERVER['DOCUMENT_ROOT']) . '/functions/connect_db.php';