我正在从头开始用 PHP 开发一个 MVC 框架;主要是为了学习经验,但这很容易在现场项目中结束。我以本教程为基础,并从那里进行了扩展。
请求是这样的:
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,我会被路由到站点的正确部分,但所有链接都不起作用。浏览器是否认为我在不同的文件夹中?
我希望能够对我网站中的所有内容使用相对路径,因为否则我需要在任何地方使用绝对路径来确保事情会出现。这可能吗?