【发布时间】:2011-02-05 11:51:46
【问题描述】:
我正在从头开始用 PHP 开发一个 MVC 框架;主要是为了学习经验,但这很容易在现场项目中结束。我以tutorial 为基础,并从那里扩展。
请求是这样发出的:
examplesite.com/controller/action/param1/param2/ 等等...
这是我的 .htaccess 文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]
所以所有请求都会转到 index.php,然后它们会从那里路由到正确的控制器和操作。如果没有给定控制器或动作,则假定两者都使用默认的“索引”。
我有一个带有索引操作的索引控制器,它应该是我网站的主页。我可以通过 examplesite.com 访问它(因为假定索引部分)。它有一些图像、指向样式表的链接和一些脚本。它们与相对于 index.php 的路径链接。我认为这很好,因为所有请求都转到 index.php 并且所有内容都使用 php 简单地包含在此页面中。如果我访问 examplesite.com,这将有效。我将看到所有图像和样式,并且脚本将运行。 但是,如果我访问 examplesite.com/index,我会被路由到站点的正确部分,但所有链接都不起作用。浏览器是否认为我在不同的文件夹中?
我希望能够对我网站中的所有内容使用相对路径,否则我需要在任何地方都使用绝对路径来确保显示内容。这可能吗?
【问题讨论】:
标签: php model-view-controller url browser segment