又来了一个问题,因为我目前的解决方案是不是真的满足了我对以下问题的HTML资源:我有在开发MVC模式的自己的PHP框架办法避免的Apache别名路径包括像CSS
。而我的路由器工作完美,所有,但我有一个问题,我找不到解决方案。
那么我路由每个传入的请求index.php文件位于我的框架的基路径。 Ofcourse这是没有问题的,包括CSS时,如用相对路径的工作:
<link rel="stylesheet" type="text/css" href="style/include/css/style.css" />
这个工程在浏览器中完美。当然,我在URL中输入的内容并不重要,因为每个请求都会按照上述方式重定向到索引,从而使合理的路由成为可能。
但是,当我的网址包含多个类似子文件夹的斜杠时,例如:“/ manual/details/1_2”,我得到一个正常的路由过程,但浏览器找不到css文件,除非我添加“../”为我的网址中的每个“/”映射回我的基路径。
例如,对于上面的网址,这将工作,而不是:
<link rel="stylesheet" type="text/css" href="../../style/include/css/style.css" />
我CURENT解决方案:
我写在我的路由类中的PHP函数,确定所需要的量“../”模式,并且我总是在实施资源之前投入该功能,以便随时建立精确的 路径。
例子:
<link rel="stylesheet" type="text/css" href="<?=Router::getInstance()->getSubdirectoryPrefix()?>style/include/css/style.css" />
不用说,这是非常不方便,也如果你忘记将这个函数很烂。如果你的路线改变了,或者你忘记了你在一个子目录中,你会想知道为什么你的资源找不到。
我也知道如何在Alias的虚拟主机配置中添加一个别名,例如Alias/public style /,但我想找到另一个 - 项目和PHP内部方式,而没有一个不方便的废话,比如粘贴别名函数all这个时间并且没有设置虚拟主机选项,所以框架可以保持轻量级,并且不需要任何讨厌的外部选项,比如修改虚拟主机。
我很想听听您的解决方案,最好是.htacces - OH中,在它说话时,我在这里留下我的.htaccess代码藏汉:
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
在此先感谢您的帮助〜
大声笑,这是太容易...非常感谢这很像一个魅力! – Steini 2014-09-03 08:38:15