我制作了自己的php MVC,除了加载某些图像外,它完美适用于所有内容。例如,它将加载像图标和一些其他图像,但是当涉及到使用标签时,它不会加载图像,但当我查看谷歌浏览器开发人员检查工具时,它显示我的标签图像没有加载。它返回一个301号码并加载HTML。所以就像我的MVC一样认为图像的URL是一个页面!我希望我的MVC只向我的index.php文件发出请求,该文件位于我的站点的根目录中。此外,当它涉及它生成HTML代码,我的意思是,当我把直接图像网址时,它会转到我的错误html页面 在浏览器中。 图片的绝对网址:
http://localhost/website/user_data/cfedabd2e283c19c06f3b8b5bd45df4bb66c2b3a/photo.jpg
以下是我的代码:
的.htaccess -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?u=$1 [PT,L]
</IfModule>
bootstrap.php中(路由器) -
class Bootstrap {
function __construct() {
$url = $_GET['u'];
$url = rtrim($url, '/');
$url = explode('/', $url);
if (empty($url[0])) {
require 'controllers/index.php';
$controller = new Index();
$controller->index();
return false;
}
$file = 'controllers/' . $url[0] . '.php';
if (file_exists($file)) {
require $file;
} else {
$this->error();
}
$controller = new $url[0];
$controller->loadModel($url[0]);
// calling methods
if (isset($url[2])) {
if (method_exists($controller, $url[1])) {
$controller->{$url[1]}($url[2]);
} else {
$this->error();
}
} else {
if (isset($url[1])) {
if (method_exists($controller, $url[1])) {
$controller->{$url[1]}();
} else {
$this->error();
}
} else {
$controller->index();
}
}
}
function error() {
header('location: ' . APP_URL . 'index');
}
index.php(我想要所有请求的地方) -
<?php
//error_reporting(E_ALL);
session_start();
/* Require all config files */
require 'config/config.php';
/* Initiate system */
$bootstrap = new Bootstrap;
?>
示例用户看到的内容 -
<h3>Error page not found</h3>
带
的图像$photo = "http://localhost/website/user_data/cfedabd2e283c19c06f3b8b5bd45df4bb66c2b3a/photo.jpg;
<img src="<?php echo $photo; ?>" width="200" style="max-height: 200;"/>