当网址为http://example.com/mvc/login/requestsExceeded
,
但它在我的登录索引页面中http://example.com/mvc/login
,
如果我添加正斜杠http://example.com/mvc/login/
,那么它也不起作用。
mvc =子目录中的站点
login = controller
requestsExceeded = view
.css文件位于http://www.example.com/mvc/views/themes/default/style.css
文件路径正常,因为我试过这样:
<?php if(file_exists("views/themes/{$theme}/style.css")) echo 'TEST'; ?>
<link href="views/themes/<?=$theme;?>/style.css" type="text/css" rel="stylesheet" />
它确实回应了TEST。
这是我的简化路由器:
<?php
$controller = "Index";
$action = "index";
$query = null;
if (isset($_GET['load']))
{
$params = array();
$params = explode("/", $_GET['load']);
$controller = ucwords($params[0]);
if (isset($params[1]) && !empty($params[1]))
{
$action = $params[1];
}
if (isset($params[2]) && !empty($params[2]))
{
$query = $params[2];
}
}
$modelName = $controller;
$controller .= 'Controller';
$load = new $controller($modelName, $action);
if (method_exists($load, $action))
{
$load->{$action}($query);
}
else
{
die('Invalid method. Please check the URL.');
}
我很确定这是由.htaccess文件引起的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?load=$1 [PT,L]
- 我想限制所有访问权限,除非index.php ...,
- 允许访问.css,.gz,.js和图像文件,
- 从网址中删除正斜杠,
-redirect 301 to index.php,
-redirect http://example.com/mvc/home
到index.php,
帮助将不胜感激!
答案 0 :(得分:5)
将导入更改为
<link href="/mvc/views/themes/<?=$theme;?>/style.css" type="text/css" rel="stylesheet" />
如果您希望相同的链接可以在您网站的任何位置使用,那么您最好让路径为绝对路径,即以/
开头。