添加“/”让网站崩溃
这是它的外观没有“/”(本地主机/ index.php文件):http://postimg.org/image/jxg239qzn/添加“/”让网站崩溃
在URL(本地主机/ index.php文件/末尾添加完后): http://postimg.org/image/e01pe0isv/
任何有经验的人都可以给出一个简短的提示,说明可能的原因。
这里是index.php文件:
require_once("php/config.php");
if(substr_count($_SERVER['PHP_SELF'],'/')==1){ // fixing that bug
require_once(ROOT_PATH . "php/header.php");
if(isvalid(quizzid()) == true){
switch(quizzid()){
case 0:
require_once(ROOT_PATH . "php/questionarios.php");
break;
default:
require_once(ROOT_PATH . "php/questionario.php");
break;
}
}
require_once(ROOT_PATH . "php/footer.php"); // footer
}else{ // if there are more than 1 '/' it would redirect to > index
header('Location: /index.php');
}
屏幕截图显示,当您在网址末尾附加尾部斜线时,您的网站不会加载外部文件(CSS,JS,图片)。
最有可能的原因是因为您使用相对路径作为外部文件。
<link rel="stylesheet" type="text/css" href="style.css">
您的浏览器将尝试加载http://localhost/index.php/style.css
而不是http://localhost/style.css
。
对外部文件使用绝对路径将纠正该问题。
<link rel="stylesheet" type="text/css" href="/style.css">
您还可以使用HTML的<base>
element,这将配置从一个特定的目录中获取所有相对路径:这会影响到所有的CSS/JS /图像文件,所以它不是改变都是相对更快的解决方案到绝对路径。
<base href="http://localhost/">
我也建议在Apache's configuration的AcceptPathInfo
设置为Off
。这将向http://localhost/index.php/
发出请求以获得404 Not Found
响应。
谢谢!我不打算超出你的答案,你解释得很好。 – Vladimir 2015-02-06 12:15:25
添加/后,包含路径从localhost更改为localhost/index.php /并搜索localhost/index.php/php/config.php中不存在的config.php。
因此,在添加/之后,您的ROOT_PATH未设置。
使用绝对路径而包括(全路径)配置
require_once( “/ PHP/config.php中”);
我刚刚意识到问题出在哪儿,对我的愚蠢行为感到羞耻。
无处不在我曾经包括IMG,CSS,JS或其他任何东西,我用的是这样的:
(前)的link rel = “样式” 类型= “文/ CSS的” href = “ css/css.css“
(之后)link rel =”stylesheet“type =”text/css“href = ”/ css/css。CSS”
下面是关于这一个很好回答的问题:relative path to CSS file
谢谢你,对不起,如果惹恼了,我的愚蠢
(我想提出一个+1上的每个答案,但我需要15个声望)
请从'index.php'向我们展示您的代码 – Rizier123 2015-02-06 09:25:41
您最有可能使用CSS文件的相对路径更改为绝对路径或设置基地 – Spokey 2015-02-06 09:37:13
好的,我发布了代码,对于延迟抱歉,无论如何我会调查路径类型以及如何管理它,这正是我需要的。 谢谢你的担心。 – Vladimir 2015-02-06 09:39:18