我的.htaccess中有这个:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule . /index.php
这就是我使用参数的方式:
<?php
$request = $_SERVER['REQUEST_URI'];
$request = substr($request,1);
$params = explode('/', $request);
$safe_pages = array('page1','page2','page3');
if(in_array($params[0],$safe_pages))
{
include($params[0].'.php');
}else
{
include('404.php');
}
?>
假设我的网站是:www.site.com
www.site.com/page - &gt;完美地运作
www.site.com/page/parameter - &gt;不加载任何CSS或图像,因为它在root / page而不是root /
中查找它们我试图为我的CSS和图像使用绝对链接,但它仍然无法正常工作,所以我想问题出在.htaccess或者我错过了什么。
答案 0 :(得分:1)
使用
<base href="http://absolute_path_here/">
在结束</head>
之前的HTML中。
答案 1 :(得分:1)
问题不在于htaccess重写规则,而是在你的html中 - yuor指向静态内容的链接(如css,图像或脚本)应该以斜杠开头,与域名相关。而不是
<link href="css/style.css" />
<script src="js/script.js"><script>
使用
<link href="/css/style.css" />
<script src="/js/script.js"><script>
其他方式是使用base
标记,但它可以破坏页面上的命名锚点